почему выводится команда grep [дубликат]

-1

На этот вопрос уже есть ответ здесь:

У меня сейчас что-то подобное. Я пытаюсь найти процесс с определенным именем

>:~# 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

Rajeshwar
источник
2
Потому что вы запустили процесс , названный , grep avahi-daemonкоторый содержит словоavahi-daemon
DavidPostill
Спасибо за разъяснение этого. Я думал, что
Раджешвар

Ответы:

1

Он возвращается, потому что он соответствует вашему шаблону grep.

В частности, все три строки содержат слово «avahi-daemon», и, как вы и просили, grep проанализировал выходные данные psи обнаружил, что в дополнение к двум процессам, которые на самом деле называются avhai-daemon, существует также процесс, выполняющийся , grep avahi-daemonкоторый соответствует. Если вы действительно не хотите, чтобы он возвращался, вам нужно добавить предложение «не соответствует» в ваш grep и сказать ему, что вы хотите, чтобы он выполнял поиск строк, которые содержат avahi-daemon, но НЕ содержали Grep.

Дон симон
источник
Распространенным способом является поиск [a]vahi-daemon, который не будет соответствовать самому себе.
grawity
1

Один из способов исключить grep из вывода ps - не запускать grep.

Вы можете фильтровать вывод ps, используя ключ -C, вместо того, чтобы передавать его вывод.

Чтобы вывести список только процессов avahi-daemon, вы можете запустить эту команду:

ps -C avahi-daemon

Эйрик Фуллер
источник