我有一个名为“gao”的进程,进程的“grep”显示两个进程包括“awk”。什么是grep管道的输出
ps aux | awk '/gao/{print}'
其中输出有两条线,而我只想要一个包括“高”只。
vinllen 1205 100.0 0.0 2432780 652 s005 R+ 12:01PM 0:14.80 ./gao
vinllen 1271 0.0 0.0 2423460 232 s006 R+ 12:01PM 0:00.00 awk /gao/{print}
所以我想在这个shell脚本中插入“grep -v awk”。但我不知道我应该去哪个地方。尝试在“ps aux”之后插入此句后,它可以正常工作。
[email protected] ~/code/tmp/2017_07_17$ ps aux | grep -v awk | awk '/gao/{print}'
vinllen 1205 100.0 0.0 2432780 652 s005 R+ 12:01PM 2:39.12 ./gao
这混淆了我很多,因为在我的理解,第一“的ps aux”管道将输出全过程,第二个“的ps aux | grep的-v AWK”将输出所有的进程排除“AWK “,第二条管道将再次提升”awk“的进程。所以我认为应该有两个过程,如下所示:
vinllen 1205 100.0 0.0 2432780 652 s005 R+ 12:01PM 0:14.80 ./gao
vinllen 1271 0.0 0.0 2423460 232 s006 R+ 12:01PM 0:00.00 awk /gao/{print}
有谁能告诉我为什么?非常感谢。
谢谢你,埃德。所以,正如你提到的那样,是否有可能'ps aux'的结果被'grep -v awk'过滤,最后是'awk'处理的结果。如果是这样,输出应该是两行。 – vinllen
1)是,2)否。请重新阅读我在答复中所说的内容,因为您似乎误解了这一点,但我不知道如何更清楚地陈述它。 –
哇,太棒了!它帮助我,非常感谢! – vinllen