![需要匹配egrep中正在运行的进程](https://linux22.com/image/1635126/%E9%9C%80%E8%A6%81%E5%8C%B9%E9%85%8Degrep%E4%B8%AD%E6%AD%A3%E5%9C%A8%E8%BF%90%E8%A1%8C%E7%9A%84%E8%BF%9B%E7%A8%8B.png)
我需要找到所有所有者既不是 root 也不是 Student 的正在运行的进程。我知道如何按类型获取所有者既不是 root 也不是 Student 的正在运行的进程
ps aux | egrep '^[^(root)|(Student)]'
我正在努力获取所有非 Student 或 root 的正在运行的进程。目前,我只能通过输入以下代码来获取一些正在运行的进程
ps aux | egrep '^[^(root)|(Student)]'
我试过了[a-z]+
,它显示了 root 和其他正在运行的进程。如何在没有 root 和 Student 的情况下获取所有正在运行的进程egrep
?
答案1
ps aux | grep -vE '^(root|Student) '
'[^(root)|(Student)]'
会匹配不属于该类别的字母,这不是我们想要实现的。只需将grep -E
(与 相同egrep
)与正则表达式一起使用'^(root|Student) '
(匹配以 或 开头root
并Student
以空格结尾的所有内容),但打印所有内容不是使用-v
选项进行匹配。
另外,注释ps
允许您自定义列。例如,如果您只想要 pid,则可以使用ps -eo ruser,pid
而不是。或者,您可以使用而不是 来ps aux
按 uid 进行匹配(如果用户名被截断,则尤其困难)。ruid
ruser