Warum grep
entfernen Klammern in einem Muster den Grep-Prozess aus den ps
Ergebnissen?
$ ps -ef | grep XXXX
[...] XXXX
[...] grep XXXX
$ ps -ef | grep [X]XXX
[...] XXXX
Warum grep
entfernen Klammern in einem Muster den Grep-Prozess aus den ps
Ergebnissen?
$ ps -ef | grep XXXX
[...] XXXX
[...] grep XXXX
$ ps -ef | grep [X]XXX
[...] XXXX
Antworten:
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]tring
die Zeile wird nicht angezeigt, da grep übersetzt [s]tring
zu string
, während ps Ausgänge [...] grep [s]tring
, und das nicht übereinstring
[]
um einen beliebigen Zeichensatz in Klammern handelt, in diesem Fall ist "s" der einzige ...
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