En muchas ocasiones se requiere cambiar cadenas de texto en uno o más archivos de textos, en mi caso fue la necesidad de cambiar una opción de configuración en diferentes archivos del Nagios, con lo cual no quería abrir 200 archivos y cambiarlo uno por uno.
La forma utilizada fue a través de Perl, la cual es muy sencilla, en un intérprete de línea de comandos ponemos lo siguiente:
perl -pi -e ’s/cadena/reemplazo/g’ *.cfg
Vamos a explicar un poco sobre las opciones utilizadas.
- -p Con esta opción imprimimos cada línea del archivo.
- -e Nos sirve para especificar que el script será en una línea.
- -i Con esto le decimos a Perl que estamos en modo edición, así que cualquier coincidencia en el patrón lo reemplace.
La expresión ’s/cadena/reemplazo/g’ está compuesta por ’s’ donde especificamos que será una función de búsqueda y reemplazo, “cadena” es para especificar la cadena a buscar y “reemplazo” la cadena con la que se sustituirá esa cadena, la opción ‘g’ nos indica que sustituya todas las coincidencias en el o los archivos, no solo la primera.
Referencias:
Perl 5 by Example: Command-line Options - http://affy.blogspot.com/p5be/ch17.htm
Using Regular Expressions - http://etext.lib.virginia.edu/services/helpsheets/unix/regex.html
Entradas (RSS)