На этот вопрос уже есть ответ здесь:
- Исключая grep из списка процессов 7 ответов
У меня сейчас что-то подобное. Я пытаюсь найти процесс с определенным именем
>:~# ps | grep avahi-daemon
12499 avahi 3048 S avahi-daemon: running [BlahBlah.local]
12500 avahi 3048 S avahi-daemon: chroot helper
12538 root 2672 S grep avahi-daemon <---What is this
Что такое 3-я строка? Почему это говоритgrep avahi-daemon
grep avahi-daemon
который содержит словоavahi-daemon
Ответы:
Он возвращается, потому что он соответствует вашему шаблону grep.
В частности, все три строки содержат слово «avahi-daemon», и, как вы и просили, grep проанализировал выходные данные
ps
и обнаружил, что в дополнение к двум процессам, которые на самом деле называются avhai-daemon, существует также процесс, выполняющийся ,grep avahi-daemon
который соответствует. Если вы действительно не хотите, чтобы он возвращался, вам нужно добавить предложение «не соответствует» в ваш grep и сказать ему, что вы хотите, чтобы он выполнял поиск строк, которые содержат avahi-daemon, но НЕ содержали Grep.источник
[a]vahi-daemon
, который не будет соответствовать самому себе.Один из способов исключить grep из вывода ps - не запускать grep.
Вы можете фильтровать вывод ps, используя ключ -C, вместо того, чтобы передавать его вывод.
Чтобы вывести список только процессов avahi-daemon, вы можете запустить эту команду:
ps -C avahi-daemon
источник