【问题标题】:Using grep and wc to search and count matching processes使用 grep 和 wc 搜索和统计匹配进程
【发布时间】:2017-09-05 03:53:09
【问题描述】:

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

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

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

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

【问题讨论】:

标签: unix grep ps wc


【解决方案1】:

您的管道有几个进程,并且您正在计算它们。

运行ps 很好,但使用pgrep 可能会更快乐。它有一个手册页。 (而ps -A 似乎与您自己的用户名不一致。)

【讨论】:

  • 不幸的是,我的老师希望我们使用这些特定的命令。我已经浏览了我们所有的笔记和手册页,但我似乎无法弄清楚如何解决它。
  • 考虑做ps -Af > /tmp/proc。那么你就不必担心 grep
【解决方案2】:

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

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

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


另见:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 2015-03-30
    • 2018-08-21
    相关资源
    最近更新 更多