OSX/IOS

Busque y reemplace texto en varios documentos de línea de comandos

Uso de la Terminal para buscar y reemplazar varios archivos por lotes

Si se siente cómodo con la línea de comandos y alguna vez se encuentra en una situación en la que necesita buscar y reemplazar una palabra, frase, URL o carácter en un grupo de varios documentos de texto, perl hace un gran trabajo. Una cadena de comando simple encontrará y reemplazará rápidamente el lote de grupo en el texto, ya sea en un solo documento o en un grupo de varios documentos.

Como muchas cosas en la línea de comandos, no hay un proceso de confirmación, por lo que deberá asegurarse de que la sintaxis esté configurada correctamente antes de iniciar un comando; de lo contrario, es posible que deba realizar otra búsqueda y reemplazar para corregir el error.

La sintaxis básica del comando es la siguiente:

perl -pi -w -e 's/THIS/THAT/g;' /path/to/files*.txt

Para ejemplo de una palabra, si necesita reemplazar todas las instancias de «ogre» con «cornbread» en cada archivo .txt en la carpeta «Documentos», entonces usará el siguiente comando:

perl -pi -w -e 's/ogre/cornbread/g;' ~/Documents/*.txt

Para ejemplo de encontrar y reemplazar una oración completa, supongamos que reemplazamos la oración completa «Fábrica de chocolate» por «El mago de Oz» en un grupo de archivos .txt que comienzan con «Películas» almacenados en el directorio Documentos:

perl -pi -w -e 's/The Chocolate Factory/The Wizard of Oz/g;' ~/Documents/Films*.txt

La búsqueda y sustitución se realiza de inmediato. Puede verificar el cambio usando cat y grep para verificar:

cat ~/Documents/Films124.txt |grep "Wizard of Oz"

Por supuesto, esto es bastante avanzado y sí, encontrar y reemplazar el lote con varios documentos se puede hacer de una manera más fácil de usar a través de aplicaciones GUI como TextWrangler y BBEdit, pero a veces la línea de comandos es más rápida para tareas rápidas como esta y otras que son similares, además de que no requieren descargas adicionales para su uso.

Un pulgar hacia arriba Lifehacker por el excelente truco.

Actualizar: El comando «sed» es otra forma de buscar y reemplazar rápidamente a través de la línea de comandos. La cobertura de sed es principalmente un tema para otro artículo, pero la sintaxis básica de usar sed para esta tarea es un poco más simple y, por lo tanto, más fácil de recordar:

sed -i 's/THIS/THAT/g' /path/to/files*.txt

No existe una forma correcta o incorrecta, por lo que el uso de perl o sed se convierte en una cuestión de preferencia personal.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar