Comentar todas las líneas que coincidan con algún patrón.

Comentar todas las líneas que coincidan con algún patrón.

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 sedreclaman un archivo unterminated s command.

Respuesta1

Estás intentando editar en el lugar (-iopción) elSTDIN.

Eliminar-iopció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

información relacionada