Quando é útil usar “grep - SOMEPATTERN”?

8

No Linux / AIX onde sempre, quando é útil usar -- , como neste comando:

grep -- SOMEPATTERN
    
por gasko peter 11.10.2012 / 12:32

2 respostas

18

Quando "SOMEPATTERN" é iniciado ou pode ser iniciado (por exemplo, se é uma variável como "$PATTERN" que você não tem controle total) com um caractere - (traço). / p>

Também com o GNU grep (a menos que $POSIXLY_CORRECT esteja ativado), é útil se outros argumentos (nomes de arquivo) puderem começar com - .

Alternativamente, você pode fazer

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

-- marca o final das opções. É útil em todos os lugares onde argumentos não-opcionais podem começar com dash , e isso não causa danos, então é um bom hábito usá-los.

    
por 11.10.2012 / 12:42
8

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

grep -a file.txt

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

grep -- -a file.txt
    
por 11.10.2012 / 12:38