Linux ps命令输出可以通过用户AND命令过滤吗?


8

给定它的所有者和命令,我需要一个进程的pid。我可以使用“ ps -u xxx”及其命令通过“ ps -C yyy”过滤每个用户的进程,但是当我尝试“ ps -u xxx -C yyy”时,它们使用OR逻辑进行组合。我需要AND逻辑。我该怎么做?

Answers:




2

comm可以找到两种情况共有的PID:

ps -u xxx | sort > /tmp/ps-uxxx
ps -C yyy | sort > /tmp/ps-Cyyy
comm -1 -2 /tmp/ps-uxxx /tmp/ps-Cyyy

使用bash,可以使用进程替换来避免需要临时文件:

comm -1 -2 <(ps -u xxx | sort) <(ps -C yyy | sort)

很好,非常感谢。...但是有没有更简单的方法(不使用pgrep,因为在我的上下文中不可用)?
guettli

这不容易吗?
GargantuChet

我知道是comm做什么的。但是我一年只使用一次。这对我来说并不直观。我想每天使用它的每个人都会看到这种不同。pgrep存在的很好理由。不幸的是pgrep在我的上下文中不可用....但是现在已经解决了。问题的根源是(根据我的观点),我需要支持没有pgrep的非常老的操作系统。
guettli
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.