使用grep和wc搜索和计算匹配的进程

时间:2017-09-05 03:53:10

标签: unix grep ps wc

我使用ps列出我连接的机器上运行的所有进程,搜索我自己的进程,然后打印我正在运行的进程数,如下所示:

ps -Af | grep '^mkuhlman' | wc -l

问题是,检查实际的进程列表,我只运行8,但wc列出了9个进程。我做错了什么?

为了澄清,我不是在寻找与流程匹配,而是与我自己的用户名匹配。

2 个答案:

答案 0 :(得分:0)

您的管道有一些流程,而您正在计算它们。

正常运行ps,但您可能会对pgrep感到满意。它有一个手册页。 (并且ps -A似乎与为您自己的用户名求值一致。)

答案 1 :(得分:0)

虽然grep -v grep在大多数情况下会起作用,但它可能会导致输出错误,因为它会排除所有grep进程,而不仅仅是与ps命令行相关的进程。所以,你可以这样做:

ps -Af | grep -E '^mkuhlman|__unique__' | grep -v __unique__

其中__unique__是一个唯一的字符串,不太可能在其他用户进程的命令行中使用。

另见: