Comente todas as linhas que correspondam a algum padrão

Comente todas as linhas que correspondam a algum padrão

Preciso comentar todas as linhas que contêm "dlclose" para cada arquivo no diretório atual e em quaisquer subdiretórios (recursivamente). Este é o meu melhor palpite até agora, dado o que consegui descobrir em vários guias.

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

Os dois greps encontram com sucesso todos os arquivos que desejo alterar, mas sedreivindicam um arquivo unterminated s command.

Responder1

Você está tentando editar no local (-iopção) oSTDIN.

Remover-iopção, é inútil.

Observação:

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

Tentar

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

informação relacionada