linuxterminal

¿Cómo buscar dentro de archivos en Linux?

21 jun. 2018|Lectura de 1 minuto

El comando grep nos permite buscar dentro de archivos las líneas que coincidan con un patrón dado.

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

corr_bus_bas

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

corr_bus_bas_2

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

corr_bus_inv

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

corr_bus_cas

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

corr_bus_rec

Si solo queremos mostrar el nombre del archivo donde se encontró la coincidencia usamos la opción -l

$ grep -rl "index" ./app/Http/Controllers

corr_bus_rec_2

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!