Si muchos de vosotros utilizáis el putty o cualquier otra consola de terminal para administrar servidores, este comando es muy útil a la hora de buscar un patrón.
La funcionalidad es escribir en la salida estándar aquellas líneas que concuerden con un patrón, o si se prefiere, escribir el nombre del archivo que contiene el patrón a buscar.
veamos un ejemplo y su significado:
grep 'palabraBuscar' mifichero.txt
Es como un filtro, deja pasar todas la líneas excepto aquellas que contiene la palabra que estamos buscando. Es decir, si conocemos que hay que eliminar todos las palabras que sean «logger.debug», si lo escribimos con este parámetro nos limpia el fichero de los logger.debug.
para mejorar el comando podemos indicar que la salida de todo el chorro de lineas las guarde en otro fichero.
Ejemplo:
grep 'palabraBuscar' mifichero.txt > ficherosinlogger.txt
grep -v 'palabraBuscar' mifichero.txt
Es otro filtro, pero hace exactamente lo contrario, solo deja pasar aquello que contiene el patrón que estamos buscando.
grep -l 'palabraBuscar' *
Este comando me gusta, ya que a veces necesito buscar un usuario y no se donde aparece en cientos de ficheros que tengo en un directorio. Traduciendo lo que hace este comando es, búscame en todos los ficheros la palabra ‘palabraBuscar’ y muéstrame en que ficheros aparece.
y como ejemplo ya mas extendido por si alguno algun dia lo necesita, os dejo un comando para buscar dentro de ficheros comprimidos sin hacer un shell script extenso, en una sola línea bastaría.
for f in Log*.gz; do gzip -cd $f | grep palabraBuscar ; done
Busca en todos los ficheros que empiezan por «Log» y terminan por .gz, lo descomprime y busca dentro de fichero descomprimido el patrón.
Para ver el manual del comando grep en español visita este enlace ya que no es cuestión de copiar y pegar el manual aquí.