有什么方法可以使用 cut 命令指定更多空格的字段分隔符吗? (如“”+)?
例如:在下面的字符串中,我想达到值“3744”,我应该说什么字段分隔符?
$ps axu | grep jboss
jboss 2574 0.0 0.0 3744 1092 ? S Aug17 0:00 /bin/sh /usr/java/jboss/bin/run.sh -c example.com -b 0.0.0.0
cut -d' '
这不是我想要的,因为它只适用于一个空间。awk
也不是我要找的,但是如何处理“剪切”?
thanks.
实际上awk
is exactly您应该研究的工具:
ps axu | grep '[j]boss' | awk '{print $5}'
或者你可以放弃grep
自从awk
了解正则表达式:
ps axu | awk '/[j]boss/ {print $5}'
但如果,出于某种奇怪的原因,你真的can't use awk
,您还可以执行其他更简单的操作,例如首先将所有空白折叠为一个空格:
ps axu | grep '[j]boss' | sed 's/\s\s*/ /g' | cut -d' ' -f5
That grep
顺便说一句,技巧是一种巧妙的方法,只能得到jboss
进程而不是grep jboss
一个(同上)awk
变体也是如此)。
The grep
进程将有一个字面量grep [j]boss
在其进程命令中,因此不会被grep
本身,它正在寻找字符类[j]
其次是boss
.
这是避免这种情况的好方法| grep xyz | grep -v grep
有些人使用的范式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)