¿Te refieres a buscar y reemplazar una cadena en todos los archivos que coincidan con grep?
perl -p -i -e 's/oldstring/newstring/g' `grep -ril searchpattern *`
Editar
Dado que esta parece ser una pregunta bastante popular, pensé que actualizaría.
Hoy en día lo uso principalmente ack-grep
porque es más fácil de usar. Entonces el comando anterior sería:
perl -p -i -e 's/old/new/g' `ack -l searchpattern`
Para manejar los espacios en blanco en los nombres de los archivos, puede ejecutar:
ack --print0 -l searchpattern | xargs -0 perl -p -i -e 's/old/new/g'
puedes hacer más con ack-grep
. Supongamos que desea restringir la búsqueda solo a archivos HTML:
ack --print0 --html -l searchpattern | xargs -0 perl -p -i -e 's/old/new/g'
Y si el espacio en blanco no es un problema, es aún más corto:
perl -p -i -e 's/old/new/g' `ack -l --html searchpattern`
perl -p -i -e 's/old/new/g' `ack -f --html`
Can't open Untitled: No such file or directory, <> line 5
al intentar "Carpeta sin título / archivo.txt".