A S E L E

comando grep

 permite buscar, dentro de los archivos, las líneas que concuerdan con un patrón. Bueno, si no especificamos ningún nombre de archivo, tomará la entrada estándar, con lo que podemos encadenarlo con otros filtros.

 opciones las más usadas:

-c En lugar de imprimir las líneas que coinciden, muestra el número de líneas que coinciden.


-e PATRON  permite especificar varios patrones de búsqueda o proteger aquellos patrones     de búsqueda que comienzan con el signo -.


-r busca recursivamente dentro de todos los subdirectorios del directorio actual.


-v  muestra las líneas que no coinciden con el patrón buscado.


-i ignora la distinción entre mayúsculas y minúsculas.


-n Numera las líneas en la salida.


-E  permite usar expresiones regulares. Equivalente a usar egrep.


-o le indica a grep que nos muestre sólo la parte de la línea que coincide con el patrón.


-f ARCHIVO extrae los patrones del archivo que especifiquemos. Los patrones del archivo deben ir uno por línea.


-H imprime el nombre del archivo con cada coincidencia.


ejemplos:


- Buscar todas las palabras que comiencen por a en un archivo:
$ grep "a*" archivo

Otra forma de buscar, sería:
$ cat archivo | grep "a*"

- Mostrar por pantalla, las líneas que contienen comentarios en el archivo /boot/grub/menu.lst:
$ grep "#" /boot/grub/menu.lst

- Enviar a un fichero las líneas del archivo /boot/grub/menu.lst que no son comentarios:
$ grep -v "#" /boot/grub/menu.lst

- Contar el número de interfaces de red que tenemos definidos en el fichero /etc/network/interfaces:
$ grep -c "iface" /etc/network/interfaces

- Mostrar las líneas de un fichero que contienen la palabra CADIZ o SEVILLA:
$ grep -e "CADIZ" -e "SEVILLA" archivo

- Mostrar las líneas de un fichero que contienen la palabra CADIZ o SEVILLA, numerando las líneas de salida:
$ grep -n -e "CADIZ" -e "SEVILLA" archivo

- Mostrar los ficheros que contienen la palabra MURCIA  en el directorio actual y todos sus subdirectorios:
$ grep -r "MURCIA" *