Comente todas as linhas correspondentes a algum padrão

1

Eu preciso comentar todas as linhas contendo "dlclose" para cada arquivo no diretório atual e em quaisquer subdiretórios (recursivamente). Este é o meu melhor palpite até agora, dado o que eu fui capaz de descobrir em vários guias.

grep -lIR "dlclose" . | grep -v ".svn" | sed -i 's/.*dlclose.*/\/\/&/g'

Os dois greps encontram com êxito todos os arquivos que eu quero alterar, mas sed reivindica unterminated s command .

    
por user50914 11.08.2010 / 20:54

1 resposta

1

Você está tentando editar a opção -i ) STDIN .

Remover a opção -i , é inútil.

Nota :

Você pode acelerar muito o comando evitando o segundo grep , excluindo na raiz os diretórios desnecessários

Tente

grep -lIR --exclude-dir=.svn "dlclose" . | xargs sed -i bak 's/.*dlclose.*/\/\/&/g'  

ou

for f in $(grep -lIR --exclude-dir=.svn "dlclose" .)
do
   sed -i bak 's/.*dlclose.*/\/\/&/g' $f
done
    
por 11.08.2010 / 21:02

Tags