Buscar recursivamente ficheros con un texto determinado en Linux

Veamos las instrucciones que debemos utilizar desde un terminal de Linux. para Buscar recursivamente ficheros con un texto determinado en Linux.

Veamos la orden para encontrar los ficheros que contengan un determinado texto. Supongamos que necesitamos buscar los ficheros que contengan en su interior el text: (‘core/session’)

Desde la consola, vamos a la carpeta donde esten todos los ficheros (también buscará en los subdirectorios recursivamente). Para ello, utilizaremos las órdenes find y grep que nos proporciona Linux.

Ejecutamos la siguiente orden:

// Fórmula
find . -type f -exec grep -l "texto a buscar" {} +
// En nuestro ejemplo
find . -type f -exec grep -l "('core/session')" {} +

Nos listará todos los ficheros que contiene el texto a buscar.

Un ejemplo muy claro en los que utilizamos mucho estas órdenes es cuando heredamos un proyecto web ya creado con multitud de carpetas y ficheros. Un Magento, una aplicación web creada con CodeIgniter… cualquier proyecto. Entramos en el navegador, inspeccionamos, y vemos que en alguna parte algo no funciona. Cogemos parte del código que hay (esto ya dependerá de vuestra experiencia a la hora de buscar) y buscamos ficheros que contengan ese código. Ale, ya sabemos qué ficheros tocar.

El qué buscar es lo difícil y vas aprendiendo conforme vas utilizando las órdenes. El problema puede venir con la cantidad de ficheros que tenga el proyecto. Igual se está 3 minutos buscando, y no encuentra nada…

Espero que os haya sido de utilidad el artículo para Buscar recursivamente ficheros con un texto determinado en Linux.


Más información