需要匹配egrep中正在运行的进程

需要匹配egrep中正在运行的进程

我需要找到所有所有者既不是 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) '(匹配以 或 开头rootStudent以空格结尾的所有内容),但打印所有内容不是使用-v选项进行匹配。

另外,注释ps允许您自定义列。例如,如果您只想要 pid,则可以使用ps -eo ruser,pid而不是。或者,您可以使用而不是 来ps aux按 uid 进行匹配(如果用户名被截断,则尤其困难)。ruidruser

相关内容