首页 > 解决方案 > grepping ps 的输出,排除单词 grep

问题描述

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

ps -A -f | grep "sleep 1234"

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

谢谢

标签: linuxshellgrepps

解决方案


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

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

这现在将匹配sleep 1234,但不匹配[s]leep 1234(因为 and 之间的文字)],并且 grep 行不再匹配。sl

在进程列表中的原因grep是管道是从右到左执行的,所以grep实际上是在ps.


推荐阅读