
Necesito comentar todas las líneas que contienen "dlclose" para cada archivo en el directorio actual y cualquier subdirectorio (de forma recursiva). Esta es mi mejor suposición hasta ahora, dado lo que pude descubrir en varias guías.
grep -lIR "dlclose" . | grep -v ".svn" | sed -i 's/.*dlclose.*/\/\/&/g'
Los dos greps encuentran con éxito todos los archivos que quiero cambiar, pero sed
reclaman un archivo unterminated s command
.
Respuesta1
Estás intentando editar en el lugar (-i
opción) elSTDIN
.
Eliminar-i
opción, es inútil.
Nota:
Puedes acelerar mucho el comando.evitando el segundo grep, excluyendo en la raíz los directorios innecesarios
Intentar
grep -lIR --exclude-dir=.svn "dlclose" . | xargs sed -i bak 's/.*dlclose.*/\/\/&/g'
o
for f in $(grep -lIR --exclude-dir=.svn "dlclose" .)
do
sed -i bak 's/.*dlclose.*/\/\/&/g' $f
done