gps ps的输出,排除单词grep

时间:2018-07-04 18:02:48

标签: linux shell grep ps

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

ps -A -f | grep "sleep 1234"

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

谢谢

1 个答案:

答案 0 :(得分:3)

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

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

现在将匹配sleep 1234,但不匹配[s]leep 1234(由于]s之间的文字l),并且grep行不再匹配。

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