Wie kann ich verhindern, dass „grep“ in den PS-Ergebnissen angezeigt wird?

Wie kann ich verhindern, dass „grep“ in den PS-Ergebnissen angezeigt wird?

Wenn ich nach einem Prozess suche, der nicht existiert, zB

$ ps aux | grep fnord                          
wayne    15745  0.0  0.0  13580   928 pts/6    S+   03:58   0:00 grep fnord

Grep ist mir offensichtlich egal, das ist genauso sinnvoll wie die Suche nach dem psProzess!

Wie kann ich verhindern, dass grep in den Ergebnissen angezeigt wird?

Antwort1

Es stellt sich heraus, dass es eine Lösung gibt inSchlüsselanhänger.

$ ps aux | grep "[f]nord"

Indem Sie Klammern um den Buchstaben und Anführungszeichen um die Zeichenfolge setzen, suchen Sie nach dem regulären Ausdruck, der lautet: „Suche das Zeichen ‚f‘ gefolgt von ‚nord‘.“

Da Sie jedoch die Klammern in das Muster eingefügt haben, folgt auf „f“ jetzt „]“, sodass es grepnicht in der Ergebnisliste angezeigt wird. Cool!

Antwort2

Eine weitere Option, die ich verwende (insbesondere um zu sehen, ob ein Prozess ausgeführt wird), ist der pgrep Befehl. Dieser sucht nach einem übereinstimmenden Prozess, listet aber keine Grep-Zeile für die Suche auf. Ich mag das, weil es eine schnelle Suchmethode ist, ohne Regex- oder Escape-Befehle.

pgrep fnord

Um sowohl die Prozess-ID als auch den Namen des übereinstimmenden Prozesses auszudrucken, verwenden Sie (dankepfeffer)

pgrep -l fnord

Antwort3

Die ideale Lösung ist die von BriGuy vorgestellte

pgrep fnord 

Wenn Sie das aber nicht möchten, können Sie einfach alle Zeilen ausschließen, die mitgrepmit:

ps aux | grep -v grep | grep "fnord"

Antwort4

In zsh, grep fnord =(ps aux).

Die Idee ist, zuerst auszuführen ps aux, das Ergebnis in eine Datei zu schreiben und es dann grepauf dieser Datei zu verwenden. Allerdings haben wir keine Datei, da wir die „Prozesssubstitution“ von zsh verwenden.

Versuchen Sie zur Veranschaulichung

ps aux > ps.txt
grep fnord ps.txt
rm ps.txt

Das Ergebnis sollte das gleiche sein.

Allgemeiner Kommentarzu einigen der anderen Antworten. Manche sind viel zu kompliziert und/oder zu lang zum Eintippen. Es geht nicht nur darum, richtig zu sein, es sollte auch benutzbar sein. Aber das bedeutet nicht, dass einige dieser Lösungen schlecht sind; sie müssen nur in eine Mini-Benutzeroberfläche eingebettet werden, um sie benutzbar zu machen.

verwandte Informationen