Wann ist es sinnvoll, "grep - SOMEPATTERN" zu verwenden?

8

Wo immer, wann ist es unter Linux / AIX sinnvoll --, wie in diesem Befehl zu verwenden:

grep -- SOMEPATTERN
gasko peter
quelle

Antworten:

18

Wenn "SOMEPATTERN" mit einem (Bindestrich-) Zeichen startet oder möglicherweise startet (z. B. wenn es sich um eine Variable handelt, auf "$PATTERN"die Sie nicht die volle Kontrolle haben -).

Auch bei GNU grep (sofern nicht aktiviert $POSIXLY_CORRECT) ist es hilfreich, wenn andere Argumente (Dateinamen) damit beginnen -.

Alternativ können Sie tun

grep -e -SOMEPATTERN- -- file1 file2 -xxx-

--markiert das Ende der Optionen. Es ist überall dort nützlich, wo Argumente ohne Option mit einem beginnen können dash, und es schadet nicht, daher ist es eine gute Angewohnheit, es zu verwenden.

Stéphane Chazelas
quelle
8

Wenn das Muster mit einem Bindestrich beginnt, wird grep andernfalls denken, dass dies eine Option ist. Angenommen, Sie suchen in einem Text nach "-a":

grep -a file.txt

grep versucht dann mit der Option, das Muster "file.txt" in der Standardeingabe zu finden -a. Deshalb müssen Sie tun

grep -- -a file.txt
Januar
quelle
3
Dies gilt nicht nur für grep.
Bernhard