grep вывод ps, исключить слово grep - PullRequest
0 голосов
/ 04 июля 2018

Я использую ps, чтобы найти pid процесса, созданного для выполнения команды «sleep 1234 &» Я grep результат, чтобы соответствовать только "сон 1234".

ps -A -f | grep "sleep 1234"

однако, это соответствует и самой команде "grep sleep 1234", возвращая две строки вместо одной. Как мне написать шаблон для grep, чтобы исключить само слово «grep»?

Спасибо

1 Ответ

0 голосов
/ 04 июля 2018

Это довольно распространенная проблема, и самое простое решение - просто заключить символ в шаблон grep в квадратные скобки:

ps -A -f | grep "[s]leep 1234"

Теперь это будет соответствовать sleep 1234, но не [s]leep 1234 (из-за литерала ] между s и l), и строка grep больше не совпадает.

Причина, по которой grep присутствует в списке процессов, заключается в том, что конвейеры выполняются справа налево, поэтому grep фактически выполняется до ps.

...