GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo encuentro todos los archivos que contienen texto específico en Linux?

Puedes usar acuse de recibo. Es como grep para el código fuente. Puede escanear todo su sistema de archivos con él.

Solo haz:

ack 'text-to-find-here'

En su directorio raíz.

También puede usar expresiones regulares, especificar el tipo de archivo, etc.

ACTUALIZAR

Acabo de descubrir The Silver Searcher, que es como ack pero de 3 a 5 veces más rápido e incluso ignora los patrones de un .gitignore archivo.


Haz lo siguiente:

grep -rnw '/path/to/somewhere/' -e 'pattern'
  • -r o -R es recursivo,
  • -n es el número de línea, y
  • -w significa coincidir con la palabra completa.
  • -l (L minúscula) se puede agregar para dar simplemente el nombre de archivo de los archivos coincidentes.
  • -e es el patrón utilizado durante la búsqueda

Junto con estos, --exclude , --include , --exclude-dir las banderas podrían usarse para una búsqueda eficiente:

  • Esto solo buscará en aquellos archivos que tengan extensiones .c o .h:
grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"
  • Esto excluirá la búsqueda de todos los archivos que terminen con la extensión .o:
grep --exclude=\*.o -rnw '/path/to/somewhere/' -e "pattern"
  • Para los directorios, es posible excluir uno o más directorios usando el --exclude-dir parámetro. Por ejemplo, esto excluirá los directorios dir1/, dir2/ y todos ellos que coincidan con *.dst/:
grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/somewhere/' -e "pattern"

Esto funciona muy bien para mí, para lograr casi el mismo propósito que el tuyo.

Para obtener más opciones, consulte man grep .


Utilice grep -ilR :

grep -Ril "text-to-find-here" /
  • i significa ignorar caso (opcional en su caso).
  • R significa recursivo.
  • l significa "mostrar el nombre del archivo, no el resultado en sí".
  • / significa comenzar en la raíz de su máquina.

Linux
  1. Cómo usar el comando Grep para buscar texto en archivos

  2. Cómo gzip todos o archivos específicos en Linux

  3. Comando de Linux:¿Cómo 'buscar' solo archivos de texto?

  4. ¿Cómo encontrar todos los archivos que terminan en .rb con Linux?

  5. ¿Cómo encontrar archivos de texto que no contengan texto en Linux?

Cómo encontrar archivos en Linux

Cómo encontrar una cadena o palabra específica en archivos y directorios

Comando Grep en Linux (Buscar texto en archivos)

Cómo encontrar y eliminar archivos que contienen un texto específico en sus nombres en Linux

Cómo encontrar archivos que contengan una cadena de texto específica en Linux

Encuentra texto en archivos en Linux usando grep