Encontrar archivos que contengan un texto determinado. (Linux).
Alguna vez podemos necesitar encontrar los archivos que contengan un texto determinado. Por ejemplo, si tenemos muchos archivos de iptables y queremos buscar aquellos que contengan una dirección IP determinada. O si queremos saber en que archivos se encuentra la palabra "Linux", por ejemplo. A continuación explico como hacerlo:
El comando grep.
La instrucción que vamos a utilizar es "grep". La sintaxis es la siguiente:
grep “text string to search” directory-path
Ejemplo:
Si queremos saber qué archivos del directorio /home/felipe/prueba/ contienen la palabra "Hola" :
grep "Hola" /home/felipe/prueba/*.*
Salida:
/home/felipe/prueba/archivo1.txt:Hola Juan
/home/felipe/prueba/archivo2.txt:Hola Pepe
El comando grep recursivo.
Para que busque en el directorio actual y sus subdirectorios, debemos añadir la opción -r :
Ejemplo:
grep -r "Hola" /home/felipe/prueba/
Salida:
/home/felipe/prueba/archivo2.txt:Hola Pepe
/home/felipe/prueba/archivo1.txt:Hola Juan.
/home/felipe/prueba/pruebaprueba/archivo4.txt:Hola Manuel
El comando grep -l
Con la opción -l nos aparecerá solo el nombre del archivo:
Ejemplo:
grep -l "Hola" /home/felipe/prueba/*.*
Salida:
/home/felipe/prueba/archivo1.txt
/home/felipe/prueba/archivo2.txt
Espero que sea utilidad.
Tweet
Sea el primero en comentar
Publicar un comentario