grep - warum entfernen Klammern im grep-Muster den grep-Prozess aus den ps-Ergebnissen?


Antworten:


20

Wenn Sie ausführen ps -ef | grep string, wird grep in der Ausgabe angezeigt, da stringÜbereinstimmungen vorliegen[...] grep string .

Aber, wenn Sie laufen ps -ef | grep [s]tringdie Zeile wird nicht angezeigt, da grep übersetzt [s]tringzu string, während ps Ausgänge [...] grep [s]tring, und das nicht übereinstring


1
... weil es sich []um einen beliebigen Zeichensatz in Klammern handelt, in diesem Fall ist "s" der einzige ...
— Bis auf weiteres angehalten.

Ja ... Ich hatte wirklich Probleme, dies auf Englisch zu erklären ... es ist nicht meine Muttersprache :)
— Stefan

2

Weil die eckigen Klammern entfernt werden müssen, um einmal zu schlagen und noch einmal zu grep:

$ ps -ef | grep \\[X\\]XXX

[...] XXXX
[...] grep XXXX


$ ps -ef | grep "\[X\]XXX"

[...] XXXX
[...] grep XXXX
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.