如何阻止 grep 返回自身

如何阻止 grep 返回自身
# ps -ef | grep gre
root     15067 63614  0 11:03 pts/0    00:00:00 grep --color=auto gre

另一个例子

# ps -ef | grep sshd
root      1186     1  0 Jul26 ?        00:00:00 /usr/sbin/sshd -D
root     15439 63614  0 11:05 pts/0    00:00:00 grep --color=auto sshd

如何阻止 grep 命令被自身找到而不作为字段返回?

答案1

更好的方法是用于pgrep该任务。如今,它似乎在大多数系统上都可用。

答案2

有很多方法,或多或少有些老套和尴尬。我最喜欢的是在搜索字符串中的字母之前插入双反斜杠:

ps -ef | grep ss\\hd

\\ 被 shell 解释为 \,而 \h 被 grep 解释为等价于 'h'。所以它像以前一样有效地搜索“sshd”。但是,它自己的命令字符串不再包含“sshd”,而是包含“ss\hd”,因此它与自身不匹配。

答案3

更改模式,使其成为与文字文本不匹配的正则表达式。

    ps -ef | grep [s]shd

答案4

你需要的是ps -e | grep sshd

ps -ef列出进程及其参数,ps -e仅列出进程)。

相关内容