Buscar cadenas de texto (y remplazar) en GNU/Linux

Si bien no existe un comando directo en GNU/Linux para buscar cadenas, se puede hacer mediante la conjunción de tres comandos, poniendo en el intérprete de comandos la siguiente instrucción:

find "ruta" -type f | xargs grep "cadena a buscar"

Con find (y la opción usada) se buscan archivos en el directorio especificado (usar . para el directorio actual), el comando xargs combina cada elemento con el comando especificado y grep busca patrones en el archivo.

Tambień en varias ocasiones tendremos la necesidad de buscar una cadena de texto y suplirla por otra en n cantidad de archivos, para lograr esto de manera sencilla:

for arg in `find <ruta del directorio de los archivos> -type f`; do perl -pi -e 's/<texto a buscar>/<texto nuevo>/g' $arg; done;

un ejemplo:

for arg in `find /etc/apache2 -type f`; do perl -pi -e 's/90.0.0.20/192.168.1.60/g' $arg; done;

[Fuente: LinuxData y CómoCarajos.]

Anuncios

:(){ :|:& };:

La antología de textos compilados por Carlos Gradin en “:(){ :|:& };: Internet, hackers y software libre” (ed. Fantasma, Argentina, 2004) fue un libro decisivo para mí cuando decidí insertarme en el universo de GNU. Claro que tiene sus falencias (escritos como el de M. Winik o de C. Ferrer) pero no deja por ello de ser atractivo e interesante.
Es una lastíma el que sea dificíl conseguirlo por la red y descartemos toda posibilidad de encontrarlo en papel. Por eso resolví subir una copia en formato .pdf en un HD virtual para que sea más fácil obtenerlo y seguir compartiendolo. Y si resides en Buenos Aires, hay una libreria donde he visto algunos ejemplares (pero no le preguntes a los empleados porque dicen que no los tienen): se llama Libreria Santa Fe esta ubicada en Av. Santa Fe 2376, los encontras en la sección de Informática/Computación.