Buscar una cadena de texto dentro de varios archivos en Linux

Recientemente, tuve la necesidad de buscar una cadena de texto dentro de un gran conjunto de archivos en un servidor. Para este fin, echamos mano de 'grep', el cual mostrará todas las coincidencias con la cadena buscada dentro de uno o varios archivos.

La sintaxis del comando es sencilla:

$ grep "texto a buscar" archivo_o_directorio

Por ejemplo:

Deseamos buscar la cadena "ServerAlias" en el archivo /etc/httpd/conf/httpd.conf

$ grep "ServerAlias" /etc/httpd/conf/httpd.conf

Como podrán observar, solo se imprime las líneas que coinciden con la cadena buscada.

Ahora, deseamos buscar la misma cadena en todos los directorios bajo /home/angel (recursividad)

$ grep -r "ServerAlias" /home/angel

Como podrán observar, esta opción nos imprime el nombre del archivo además de las líneas que coinciden con la cadena buscada.

Algo útil, quizá solo nos interese saber los nombres de los archivos que contengan la cadena buscada. Para esto necesitamos la ayuda de 'cut'.

$ grep -H -r "ServerAlias" /etc/httpd/conf/ | cut -d: -f1

Nos vemos en la siguiente entrada.

Comments

Popular Posts