¿Cuándo es útil usar "grep - SOMEPATTERN"?

8

En Linux / AIX donde sea, cuándo es útil usar --, como en este comando:

grep -- SOMEPATTERN
Gasko Peter
fuente

Respuestas:

18

Cuando "SOMEPATTERN" se inicia o puede iniciarse (por ejemplo, si es una variable como la "$PATTERN"que no tiene control total) con un carácter -(guión).

También con GNU grep (a menos que $POSIXLY_CORRECTesté activado ), es útil si otros argumentos (nombres de archivo) pueden comenzar con -.

Alternativamente, puedes hacer

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

--marca el final de las opciones. Es útil en todas partes donde los argumentos no opcionales pueden comenzar con a dash, y no hace daño, por lo que es un buen hábito usarlo.

Stéphane Chazelas
fuente
8

Cuando el patrón comienza con un guión, de lo contrario grep pensará que es una opción. Digamos que estás buscando "-a" en un texto:

grep -a file.txt

grep entonces intentará encontrar el patrón "archivo.txt" en la entrada estándar, usando la opción -a. Por lo tanto, debes hacer

grep -- -a file.txt
enero
fuente
3
Esto no solo es válido para grep.
Bernhard