4 votos

Buscar y reemplazar con grep y perl

Me gustaría para grep y reemplazar el texto específico en ficheros dentro de un directorio y los subdirectorios. Trato de lo siguiente:

ls -R | egrep '.*\.txt' | perl -i -p -e 's/one.a/two.a/g'

Aunque grep escupe una lista y este se ejecuta, parece que no puedo obtener perl para escribir realmente los archivos. Si es posible, estoy interesado en aprender a hacer esto sin el uso de find .

¿Cualquier persona puede detectar dónde voy mal?

Gracias, jml

2voto

till Puntos 11

Hay dos temas de menor importancia: primero, a los nombres de archivo tubería para una línea de perl de esta manera, es necesario utilizar el comando xargs .

En segundo lugar, usted tendrá que pasar la ruta completa a la línea de perl, ya que puede ser en un subdir, así que sería mejor utilizar find .

Aquí le damos una orden de trabajo:

find . -name "*.txt" | xargs perl -i -p -e 's/one.a/two.a/g'

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X