El comando grep resulta muy útil cuando queremos buscar un patrón en un fichero de texto. Además este comando cuenta con multitud de opciones que lo hacen muy versátil para la búsqueda que más nos interese encontrar. A continuación veremos algunos ejemplos de su uso.
Tenemos un fichero llamado «datos.csv» que contiene mil líneas de texto con los siguientes campos «id first_name last_name email gender ip_address«:
pi@pi4:~/documentos $ cat datos.csv | wc -l
1000
- Ejemplo 1: grep | Buscar aquellas personas que se llamen «Robyn»:
pi@pi4:~/documentos $ grep Robyn datos.csv
111;Robyn;Gemlbett;rgemlbett32@drupal.org;Bigender;72.20.26.22
116;Robyn;Bispham;rbispham37@aboutads.info;Non-binary;201.175.43.143
- Ejemplo 2: grep -i | Realizar la búsqueda anterior pero ignorando mayúsculas y minúsculas:
pi@pi4:~/documentos $ grep -i robyn datos.csv
111;Robyn;Gemlbett;rgemlbett32@drupal.org;Bigender;72.20.26.22
116;Robyn;Bispham;rbispham37@aboutads.info;Non-binary;201.175.43.143
- Ejemplo 3: grep -n | Mostrar el número de línea donde se encuentran las coincidencias, en este caso como podéis observar coincide con el campo ID:
pi@pi4:~/documentos $ grep -n Robyn datos.csv
111:111;Robyn;Gemlbett;rgemlbett32@drupal.org;Bigender;72.20.26.22
116:116;Robyn;Bispham;rbispham37@aboutads.info;Non-binary;201.175.43.143
- Ejemplo 4: grep -c | Contar cuántas veces se repite la palabra buscada:
pi@pi4:~/documentos $ grep -c Robyn datos.csv
2
- Ejemplo 5: grep -e | Buscar dos o mas cadenas de texto:
pi@pi4:~/documentos $ grep -e '184.147.213.60' -e 'rkilloughn8@nature.com' -e '51.48.146.214' datos.csv
837;Reina;Killough;rkilloughn8@nature.com;Female;144.189.173.200
984;Magda;Giocannoni;mgiocannonirb@vk.com;Non-binary;184.147.213.60
995;Ches;Lamort;clamortrm@cyberchimps.com;Male;51.48.146.214
- Ejemplo 6: grep -r | Buscar los ficheros que contienen una palabra o cadena de texto en concreto, en este caso, la palabra «IP» dentro de la ruta /mnt/disco_1/IT/LINUX/
pi@pi4:~/documentos $ grep -lr IP /mnt/disco_1/IT/LINUX/
/mnt/disco_1/IT/LINUX/400 comandos para GNU_Linux que _deberías conocer.pdf
/mnt/disco_1/IT/LINUX/adi comands linux.pdf
/mnt/disco_1/IT/LINUX/Comandos Linux.pdf
- Ejemplo 7: grep –color | Resaltar con un color las coincidencias encontradas en el fichero

- Ejemplo 8: grep | grep | Realizar una primera búsqueda y con los resultados obtenido realizar una segunda:
pi@pi4:~/documentos $ grep Robyn datos.csv | grep 72.20.26.22 datos.csv
111;Robyn;Gemlbett;rgemlbett32@drupal.org;Bigender;72.20.26.22
- Ejemplo 9: grep -v | Búsqueda a la inversa, es decir, mostrar aquellos resultados que no coinciden con la palabra a buscar en el fichero. En este ejemplo, mostrará todas aquellas cuentas que no pertenezcan a @microsoft.com:
pi@pi4:~/documentos $ grep -v @microsoft.com datos.csv
1;Pennie;Webby;pwebby0@reference.com;Polygender;235.164.173.32
2;Iona;Diegan;idiegan1@cloudflare.com;Bigender;219.121.24.3
3;Weber;Cossons;wcossons2@constantcontact.com;Male;97.226.100.72
- Ejemplo 10: grep -m | Limitar los resultados mostrados por pantalla con el parámetro «-m»:
pi@pi4:~/documentos $ grep -m 3 @samsung.com datos.csv
303;Florina;Genthner;fgenthner8e@samsung.com;Genderfluid;146.10.233.223
336;Aviva;Rominov;arominov9b@samsung.com;Polygender;223.28.119.132
532;Val;Scapelhorn;vscapelhorner@samsung.com;Bigender;254.68.38.98
Estos son únicamente algunos ejemplos útiles del comando grep, como siempre podéis consultar todas su opciones en la documentación oficial:
man grep