El comando grep nos permite buscar dentro de archivos las líneas que coincidan con un patrón dado. La sintaxis básica del comando grep es:
grep [opciones] que_buscar donde_buscar
Para poder explicar el uso de este comando nuestros ejemplos usarán la estructura de archivos del proyecto EDcampBogota2017.
Búsqueda básica
Buscar la palabra prices dentro del archivo PricesController.php
$ grep "prices" ./app/Http/Controllers/PricesController.php
Si queremos que nuestra búsqueda devuelva el número de la línea en donde se encontró la coincidencia, usamos la opción -n
$ grep -n "prices" ./app/Http/Controllers/PricesController.php
Búsqueda Inversa
Si queremos buscar dentro del archivo Controller.php
las líneas donde NO se encuentre la palabra use, debemos usar la opción -v
$ grep -vn "use" ./app/Http/Controllers/Controller.php
Búsqueda case-insensitive.
Si queremos buscar dentro del archivo HomeController.php
las líneas donde se encuentre la palabra home sin distinguir entre mayúsculas y minúsculas (home, Home, HOME ...), utilizamos la opción -i
$ grep -in "home" ./app/Http/Controllers/HomeController.php
Búsqueda recursiva.
Hasta el momento solo hemos realizado búsquedas sobre un archivo especifico, sin embargo también podemos realizar búsquedas recursivas, para ello usamos la opción -r, por ejemplo para buscar dentro del directorio Controllers todos los ficheros que contengan coincidencias con la palabra index, la instrucción sería:
$ grep -rn "index" ./app/Http/Controllers
Si solo queremos mostrar el nombre del archivo donde se encontró la coincidencia usamos la opción -l
$ grep -rl "index" ./app/Http/Controllers
Espero puedas poner en práctica esta información para mejorar tus habilidades con la terminal de Linux.
Si quieres saber más, tenemos un curso de Linux Desde Cero. ¡Nos vemos en clases!