dlaczego echo polecenia grep [duplikat]

-1

To pytanie ma już odpowiedź tutaj:

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

Rajeshwar
źródło
2
Ponieważ uruchomiłeś proces o nazwie, grep avahi-daemonktóry zawiera słowaavahi-daemon
DavidPostill
Thansk za wyjaśnienie tego. Myślałem, że
Rajeshwar

Odpowiedzi:

1

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 psi stwierdził, że oprócz dwóch procesów, które w rzeczywistości nazywane są avhai-daemon, działa również proces , grep avahi-daemonktó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

Don Simon
źródło
Popularnym sposobem jest grep [a]vahi-daemon, który nie pasuje do siebie.
grawity
1

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

Eirik Fuller
źródło