Quando é útil usar "grep - SOMEPATTERN"?

8

No Linux / AIX, onde quer que seja, quando é útil usá-lo --, como neste comando:

grep -- SOMEPATTERN
gasko peter
fonte

Respostas:

18

Quando "SOMEPATTERN" inicia ou pode começar (por exemplo, se for uma variável como a "$PATTERN"qual você não tem controle total) com um -caractere (traço).

Também com o GNU grep (a menos que $POSIXLY_CORRECTesteja ativado ), é útil se outros argumentos (nomes de arquivos) começarem -.

Como alternativa, você pode fazer

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

--marca o final das opções. É útil em qualquer lugar em que argumentos que não sejam de opção podem começar com a dashe não prejudicam, por isso é um bom hábito usá-la.

Stéphane Chazelas
fonte
8

Quando o padrão começa com um traço, caso contrário, o grep pensará que é uma opção. Diga que você está procurando "-a" em um texto:

grep -a file.txt

grep, então, tentar encontrar o padrão "file.txt" na entrada padrão, usando a opção -a. Portanto, você precisa fazer

grep -- -a file.txt
janeiro
fonte
3
Isso não serve apenas para grep.
11242 Bernhard