linux - grepping ps 的输出,排除单词 grep
问题描述
我正在使用 ps 查找为执行命令“sleep 1234 &”而创建的进程的 pid,我 grep 将结果仅匹配“sleep 1234”。
ps -A -f | grep "sleep 1234"
但是,这也匹配命令“grep sleep 1234”本身,返回两行而不是一行。如何为 grep 编写模式以排除单词“grep”本身?
谢谢
解决方案
这是一个非常常见的问题,最简单的解决方案是用方括号将 grep 模式中的字符括起来:
ps -A -f | grep "[s]leep 1234"
这现在将匹配sleep 1234
,但不匹配[s]leep 1234
(因为 and 之间的文字)]
,并且 grep 行不再匹配。s
l
在进程列表中的原因grep
是管道是从右到左执行的,所以grep
实际上是在ps
.
推荐阅读
- sqlite - 我应该如何在 Flutter 中订购我的 SQLite 服务?多合一还是每桌一人?
- sql - 在不知道列名的情况下组合任意表
- python - 更新某个值时,Django 管理员会自动更新一个值
- ansible - ansible zypper 补丁更新任务显示 ok 而不是 changed
- oauth-2.0 - Fastapi swagger docs OAuth2 屏幕的自定义错误消息
- debugging - 调试时后退后的 Visual Studio 2019 nullreference
- asp.net-core - 在没有 ASP.NET Core 标识的情况下更改 LoginPath
- angularjs - 模块解析失败:/src/app/app.ts 意外令牌 (14:5) 您可能需要适当的加载程序来处理此文件类型
- url-rewriting - Firebase 托管 seo 友好的网址
- javascript - 根据浏览器 userAgent 更改样式