grep es un utilitario (basado en líneas de comandos) que permite realizar búsquedas de palabras y/o patrones en un fichero o grupo de ficheros. Su nombre es tomado de «global regular expression print». Por defecto grep busca las líneas que coinciden y las imprime en la salida estándard
Sintaxis general
$ grep [opciones] patrón [fichero] ó $ grep [opciones] -f fichero-que-contiene-los-patrones-de-búsqueda fichero
Opciones básicas:
- -c: Cuenta el número de coincidencias
- -E: Expresión regular extendida
- -f: Obtiene el patrón o los patrones de búsqueda de un fichero (Uno por cada línea)
- -i: Insensible a mayúsculas y minúsculas
- -l: Imprime el nombre de cada fichero de entrada donde se encuentren coincidencias
- -n: Imprime el número de línea en donde se encuentren coincidencias
- -o: Imprime sólo la parte que coincide
- -v: Invierte el sentido de la búsqueda
Extensiones GNU:
- –color: Resalta la palabra que coincide con el color especificado en la variable de entorno GREP_COLOR, rojo por defecto
- -r,-R: Busca coincidencias en todos los ficheros que se encuentran debajo de un directorio, incluyendo los subdirectorios
Nota: No se abordan todas las opciones
A partir del fichero (frutas.txt), el cuál contiene las siguientes líneas:
La Manzana es una fruta pomácea comestible obtenida del manzano doméstico La ManZana es una de las frutas más cultivadas del mundo La manzana puede comerse fresca pelada o con piel MANZANA Cameo Mango Mamey Güayaba Pera
Se elaboró los siguientes ejemplos:
1. Sensible a mayúsculas y minúsculas
$ grep manzana frutas.txt La manzana puede comerse fresca pelada o con piel
2. Insensible a mayúsculas y minúsculas
$ grep -i manzana frutas.txt La Manzana es una fruta pomácea comestible obtenida del manzano doméstico La ManZana es una de las frutas más cultivadas del mundo La manzana puede comerse fresca pelada o con piel MANZANA Cameo
3. Contar el número de coincidencias (Sensible a mayúsculas y minúsculas)
$ grep -c manzana frutas.txt 1
4. Contar el número de coincidencias (Insensible a mayúsculas y minúsculas)
$ grep -ci manzana frutas.txt 4
5. Prefijar número de línea
$ grep -n manzana frutas.txt 3:La manzana puede comerse fresca pelada o con piel
6. Sólo la parte que coincide (Sensible a mayúsculas y minúsculas)
$ grep -o manzana frutas.txt manzana
7. Sólo la parte que coincide (Insensible a mayúsculas y minúsculas)
$ grep -io manzana frutas.txt Manzana ManZana manzana MANZANA
8. Encontrar las líneas que contienen manzana o Mamey
$ grep -E 'manzana|Mamey' frutas.txt La manzana puede comerse fresca pelada o con piel Mamey
9. Invertir la búsqueda (Sensible a mayúsculas y minúsculas)
$ grep -v manzana frutas.txt La Manzana es una fruta pomácea comestible obtenida del manzano doméstico La ManZana es una de las frutas más cultivadas del mundo MANZANA Cameo Mango Mamey Güayaba Pera
10. Invertir la búsqueda (Insensible a mayúsculas y minúsculas)
$ grep -iv manzana frutas.txt Mango Mamey Güayaba Pera
11. Resaltar coincidencia
$ grep ana --color=always frutas.txt
El color de resaltado puede cambiarse estableciendo la variable de entorno GREP_COLOR, ejemplo export GREP_COLOR=’1;32′
12. Búquedas recursiva
$ grep -lR estudiante proyectos/
El ejemplo anterior realiza una búsqueda recursiva dentro del DIR proyectos y encuentra/lista todos los todos los ficheros que contienen la palabra estudiante
Muy buenos ejemplos, muchas gracias por el aporte. Para complementar, mas ejemplos de grep también en español: https://www.sysadmit.com/2018/07/linux-grep-ejemplos.html
me sirvió mucho para resolver mis dudas de uso
Gracias por el artículo. Sencillo, conciso y al grano. Me ha ayudado mucho para estudiar.
un saludo desde guinea ecuatorial