如何使用cut为分隔符指定更多空间?
有什么方法可以使用cut命令为更多空间指定字段定界符吗?(例如“ +”)?例如:在以下字符串中,我希望达到值“ 3744”,我应该说什么字段分隔符?
$ps axu | grep jbossjboss 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
也不是我要找的东西,而是如何处理“切割”?
谢谢。
回答:
实际上,awk
这 正是 您应该研究的工具:
ps axu | grep '[j]boss' | awk '{print $5}'
或者您也可以grep
完全放弃,因为您awk
知道正则表达式:
ps axu | awk '/[j]boss/ {print $5}'
但是,如果出于某种奇怪的原因,您真的 不能 使用awk
,您可以执行其他一些更简单的操作,例如首先将所有空白折叠到一个空格中:
ps axu | grep '[j]boss' | sed 's/\s\s*/ /g' | cut -d' ' -f5
grep
顺便说一句,这个技巧是仅获得jboss
进程而不是grep jboss
一个进程的一种巧妙方法(同样适用于awk
变体)。
该grep
过程将有文字grep [j]boss
在其过程中的命令,以便将不会被捕获grep
本身,角色职业,其正在[j]
后面boss
。
这是避免| grep xyz | grep -v grep
某些人使用的范例的好方法。
以上是 如何使用cut为分隔符指定更多空间? 的全部内容, 来源链接: utcz.com/qa/402820.html