Warum einen einzelnen Buchstaben in einen regulären Ausdruck setzen?

19

Ich habe mehrere Fälle gesehen, in denen Leute dies tun:

grep [f]oobar

Aber ich verstehe nicht, warum das vorzuziehen ist

grep foobar
Hortitude
quelle
Hmm .. Ich dachte, es soll eine Reihe von Zeichen innerhalb der [] entsprechen. Wenn es sich nur um ein einzelnes Zeichen handelt, kann es auch sein, dass es kompliziert aussieht :) Vielleicht steckt noch mehr dahinter.
Chida
So etwas Einfaches kann so schön sein
Chida

Antworten:

33

Es gibt keinen Grund, der für sich allein die bevorzugte Syntax darstellt. Es wird manchmal als Hack verwendet, wenn nach einem Prozess "gegriffen" wird (z ps aux | grep [a]pache. B. ). Die Verwendung dieser Syntax verhindert, dass grep mit seiner eigenen Befehlszeile in der Prozessliste übereinstimmt.

Siehe So verhindern Sie, dass "ps" seinen eigenen Prozess meldet

Jeff Ferland
quelle
4
Dies ist das einzige verbreitete Beispiel für diese mir vertraute Syntax.
Ewwhite
Tatsächlich hast du recht. Die letzten Beispiele, auf die ich
gestoßen