如果我的命令输出很长(单行),但我知道我只想要输出的第一个 [x](假设是 8 个)字符,那么最简单的方法是什么?没有任何分隔符。
似乎通常的做法会将 IFS 的设置放在 while 循环之外,以免在每次迭代时重复设置......这只是一种习惯性的“猴子看,猴子做”的风格,就像这只猴子直到我读过man read,还是我在这里错过了一些微妙(或明显明显)的陷阱?
我用这个
cat foo.txt | sed '/bar/d'
删除bar文件中包含字符串的行。
然而,我想删除这些行和它之后的行。最好的sed,awk或者其他工具,在MINGW32的可用。
这是我可以grep使用-A并-B打印匹配行以及匹配行之前/之后的行的一种相反。
有什么简单的方法可以实现吗?
grep --before-context 5 在比赛前显示 5 行。
我想在比赛前展示一切。
这样做grep --before-context 99999999会工作,但它不是很......专业。
如何显示匹配的所有文件?
有谁知道任何专门用于将文件视为集合并对它们执行集合操作的 Linux 工具?像差异,交集等?
sed在 AIX 上没有做我认为应该做的事情。我试图在 IOSTAT 的输出中用一个空格替换多个空格:
# iostat
System configuration: lcpu=4 drives=8 paths=2 vdisks=0
tty: tin tout avg-cpu: % user % sys % idle % iowait
0.2 31.8 9.7 4.9 82.9 2.5
Disks: % tm_act Kbps tps Kb_read Kb_wrtn
hdisk9 0.2 54.2 1.1 1073456960 436765896
hdisk7 0.2 54.1 1.1 1070600212 435678280
hdisk8 0.0 0.0 0.0 0 0
hdisk6 0.0 0.0 0.0 0 0
hdisk1 0.1 6.3 0.5 63344916 112429672
hdisk0 0.1 5.0 0.2 40967838 98574444
cd0 0.0 0.0 0.0 0 …Run Code Online (Sandbox Code Playgroud) 我正在尝试从已执行命令的输出中执行 IF 语句。这是我尝试这样做的方法,但它不起作用。有谁知道正确的方法来做到这一点?
if [ "`netstat -lnp | grep ':8080'`" == *java* ]; then
echo "Found a Tomcat!"
fi
Run Code Online (Sandbox Code Playgroud) 在处理日志文件时,由于某些原因,有些最终会成为 gzipped 文件,logrotate而有些则不会。所以当你尝试这样的事情时:
$ zcat *
Run Code Online (Sandbox Code Playgroud)
你最终得到一个命令行zcat xyz.log xyz.log.1 xyz.log.2.gz xyz.log.3.gz,然后是:
gzip: xyz.log: not in gzip format
Run Code Online (Sandbox Code Playgroud)
是否有一种工具可以使用魔术字节,类似于file工作原理,并使用zcat或cat取决于结果,以便我可以将输出传输到grep例如?
注意:我知道我可以编写脚本,但我想知道是否已经有工具了。
我想使用 Unixcolumn命令来格式化一些文本。我有由制表符分隔的字段,但在每个字段中也有空格。column分隔空白(制表符和空格)。如何使列仅使用制表符作为分隔符?
我试图使用以下命令将制表符指定为分隔符:
cat myfile | column -t -s"\t"
Run Code Online (Sandbox Code Playgroud) 我想从一行中删除最后一个字符:
[root@ozzesh ~]#df -h | awk '{ print $5 }'
Use%
22%
1%
1%
59%
51%
63%
5%Run Code Online (Sandbox Code Playgroud)
预期结果:
Use
22
1
1
59
51
63
5Run Code Online (Sandbox Code Playgroud)