Можно ли отфильтровать вывод команды Linux ps по команде пользователя AND?


8

Мне нужен pid для процесса, указанного его владельцем и командой. Я могу отфильтровать процесс для каждого пользователя с помощью «ps -u xxx» и его команды с помощью «ps -C yyy», но когда я пытаюсь «ps -u xxx -C yyy», они объединяются с использованием логики ИЛИ. Мне нужна логика И Как я могу сделать это?

Ответы:




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, поскольку это не доступно в моем контексте)?
Геттли

Что не так просто в этом?
GargantuChet

Я знаю, что commделает. Но я использую это только один раз в год. Это не интуитивно для меня. Я предполагаю, что каждый, кто использует это ежедневно, видит это по-другому. Есть веские причины, почему существует pgrep. К сожалению, pgrep не доступен в моем контексте .... Но теперь это решено. Корень проблемы (в соответствии с моей точкой зрения) в том, что мне нужно поддерживать очень старую операционную систему без pgrep.
Геттли
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.