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.