更优雅的“ps aux \| grep -v grep”

新手上路,请多包涵

当我检查进程列表并“grep”出那些我感兴趣的进程时, grep 本身也包含在结果中。例如,列出终端:

 $ ps aux  | grep terminal
user  2064  0.0  0.6 181452 26460 ?        Sl   Feb13   5:41 gnome-terminal --working-directory=..
user  2979  0.0  0.0   4192   796 pts/3    S+   11:07   0:00 grep --color=auto terminal

通常我使用 ps aux | grep something | grep -v grep 摆脱最后一个条目……但这并不 优雅:)

你有更优雅的技巧来解决这个问题(除了将所有命令包装到一个单独的脚本中,这也不错)

原文由 Jakub M. 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 612
2 个回答

通常的技术是这样的:

 ps aux | egrep '[t]erminal'

这将匹配包含 terminal 的行,而 egrep '[t]erminal' 不匹配!它也适用于 多种 Unix。

原文由 johnsyweb 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用 pgrep 。它更可靠。

原文由 DarkDust 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏