关于linux:捕获ps的输出,排除单词grep

 2020-09-16 

grepping output of ps, exclude the word grep

本问题已经有最佳答案,请猛点这里访问。

我正在使用ps查找为执行命令" sleeping 1234&"而创建的进程的pid。
我grep结果只匹配" sleeping 1234"。

1
ps -A -f | grep"sleep 1234"

但是,它本身也与命令" grep sleep 1234"匹配,返回两行而不是一行。 如何为grep编写模式以排除单词" grep"本身?

谢谢


这是一个非常普遍的问题,最简单的解决方案是将grep'ed模式中的字符用方括号括起来:

1
ps -A -f | grep"[s]leep 1234"

现在,它将匹配sleep 1234,但不匹配▼显示leep 1234(由于sl之间的文字]),并且grep行不再匹配。

grep之所以在进程列表中,是因为流水线是从右到左执行的,因此grep实际上是在ps之前执行的。