Usando grep -rin com o valor da string tem sublinhados

1

Estou tentando executar este comando.

grep -rin "wp_get_attachment_url" *

Mas os sublinhados (_) no valor da string parecem atrapalhar o comando grep. Como faço para pesquisar os valores da string que têm sublinhados?

    
por garbage collection 01.11.2011 / 21:41

1 resposta

1

Se wp_get_attachment_url for realmente uma URL que deve ser interpretada literalmente, use aspas simples para impedir que o shell interprete caracteres. Além disso, use a opção -F de grep para evitar que ela interprete o padrão como uma expressão regular.

http://example.com/?id=1 interpretado como uma expressão regular corresponderia a http://example.comid=1 ou http://example.com/id=1 , mas não http://example.com/?id=1 .

O comando se torna:

grep -rinF 'http://example.com/?id=1' *

Se o padrão contiver um ' , use '\'' para evitá-lo:

grep -rinF 'mornin'\'' all' *

Uma dica: * corresponde a todos os arquivos não ocultos no diretório atual. Se você quiser também combinar com os arquivos de pontos, basta usar o diretório atual recursivamente ( -r ):

grep -rinF 'search term' .
    
por Lekensteyn 01.11.2011 / 22:23