Exclui arquivos se o conteúdo não corresponder ao padrão

3

Existem centenas de arquivos .html em um diretório. Preciso excluir arquivos que não contenham a palavra bluecar em seu conteúdo.

Eu achei que sed com rm faria isso, mas eu não sei como combiná-los.

    
por gaijin 17.05.2011 / 04:45

3 respostas

4

Isso deve funcionar usando o grep:

grep -L bluecar *.html | xargs rm
    
por 17.05.2011 / 05:14
5

Com o GNU grep / xargs você pode usar

grep -LZ -- str *.html | xargs -r0 rm
    
por 17.05.2011 / 06:24
4

A ferramenta find é a usual para usar.

find . -name "*.html" \( -exec grep -q bluecar {} \; -o -exec rm {} \; \)

ou

find . -name "*.html" ! -exec grep -q bluecar {} \; -exec rm {} \;

Mas experimente copiar primeiro ...

    
por 17.05.2011 / 05:38

Tags