Qual é a diferença entre essas duas opções do grep?

1

Estou escrevendo um script. Qual é a diferença entre as duas linhas seguintes?

grep . || echo something

e

grep "^\." || echo something
    
por user231620 16.06.2013 / 19:55

1 resposta

1

O Grep usa expressões regulares ; lá, um único ponto final . corresponde a qualquer caractere único. Para corresponder a um ponto / período completo literal, você precisa escapar com uma barra invertida assim: \. . ^ significa 'o começo da linha'.

Portanto, grep . corresponderá a qualquer coisa que contenha um único caractere (então, suponho que não correspondam a linhas vazias). Por outro lado, grep "^\." corresponde a qualquer linha que comece com um literal .

No bash, || significa 'ou'; grep "^\." || echo something irá echo something se o grep não mostrar nenhuma linha (então ele é falso). && é usado para 'e' no bash.

    
por 16.06.2013 / 20:22

Tags