To pytanie ma już odpowiedź tutaj:
- Wyłączając grep z listy procesów 7 odpowiedzi
Obecnie mam coś takiego. Próbuję znaleźć proces o określonej nazwie
>:~# 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
Jaka jest trzecia linia? Dlaczego to mówigrep avahi-daemon
grep avahi-daemon
który zawiera słowaavahi-daemon
Odpowiedzi:
Jest zwracany, ponieważ pasuje do twojego wzoru grep.
W szczególności wszystkie trzy wiersze zawierają słowo „avahi-daemon”, a zgodnie z twoją prośbą grep przeanalizował dane wyjściowe
ps
i stwierdził, że oprócz dwóch procesów, które w rzeczywistości nazywane są avhai-daemon, działa również proces ,grep avahi-daemon
który pasuje. Jeśli naprawdę nie chcesz, aby został zwrócony, musisz dodać klauzulę „niepasujące” do grep i powiedzieć, że chcesz, aby szukał linii zawierających demon avahi, ale NIE zawiera grepźródło
[a]vahi-daemon
, który nie pasuje do siebie.Jednym ze sposobów wykluczenia grep z wyjścia ps jest nie uruchamianie grep.
Możesz filtrować dane wyjściowe ps za pomocą przełącznika -C zamiast przesyłać dane wyjściowe.
Aby wyświetlić listę tylko procesów demona avahi, możesz uruchomić następującą komendę:
ps -C avahi-daemon
źródło