
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 sed
reivindicam um arquivo unterminated s command
.
Responder1
Você está tentando editar no local (-i
opção) oSTDIN
.
Remover-i
opçã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