Combinação de opções grep totalmente opostas

Combinação de opções grep totalmente opostas

Eu fiz:grep -r -H -L txt ~

Egrep -r -l -L txt ~

Ele lista todos os arquivos? Porque estou obtendo uma produção muito longa.

Responder1

Seus dois comandos são exatamente iguais ... ambos recorrem ao seu diretório inicial e listam arquivos que não contêm o padrão 'txt'.

Para provar que eles têm a mesma saída, você pode fazer

diff <(grep -r -H -L txt ~) <(grep -r -l -L txt ~)

Dividindo um pouco...

grep -r -H -L

é o mesmo que

grep -r -L

-H(imprimir nomes de arquivos) está implícito para qualquer grepchamada que envolva mais de um arquivo. É isso que -Lacontece, pois lista todos os arquivos que não correspondem ao padrão especificado.

Próximo...

grep -r -l -L

é o mesmo que

grep -r -L

Isso se deve simplesmente ao fato de que -le -Lsão opções conflitantes e, nesses casos, o último sinalizador a aparecer substitui qualquer sinalizador conflitante anterior. (Graças a@don_crisstipor apontar isso.)

Então você na verdade tem grep -r -Le grep -r -L.

informação relacionada