GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo buscar en archivos específicos que coincidan con un patrón?

¿Cómo puedo encontrar una palabra en archivos específicos que coincidan con un patrón? p.ej. buscando version en CMake* archivos encontrados recursivamente en el directorio actual.

Respuesta aceptada:

Si desea ver el nombre del archivo y el número de línea, POSIXly:

find . -name 'CMake*' -type f -exec grep -nF /dev/null version {} +

(no quieres usar ; aquí, que ejecutaría un grep por archivo). Ese es el equivalente estándar del GNUismo:

find . -name 'CMake*' -type f -print0 | xargs -r0 grep -nHF {} +

find (en el primero), xargs (en el segundo) pasará tantos argumentos a grep como sea posible sin exceder el límite en el número de argumentos que puede pasar a un comando. Al hacer esa división, podría suceder que para la última ejecución, solo se pase un argumento a grep en cuyo caso grep no imprimía el nombre del archivo. Por eso necesitas /dev/null allí (o -H con GNU grep ).

Con -type f , solo estamos considerando archivos normales (no dispositivos, enlaces simbólicos, conductos, directorios...).

Si quiere usar GNUisms, puede usar GNU grep capacidad de descender un árbol de directorios:

 grep -rHnF --include='CMake*' version .

No quieres usar -R ya que eso causa grep para seguir enlaces simbólicos al descender en el árbol de directorios y leer desde dispositivos, fifos, sockets...

Esa versión es más segura y eficiente, pero no portátil.


Linux
  1. ¿Cómo encontrar archivos en Ubuntu?

  2. ¿Cómo buscar archivos por tamaño y extensión?

  3. ¿Cómo encontrar múltiples cadenas en archivos?

  4. Cómo encontrar texto específico usando GREP en Linux

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

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

Cómo excluir en Grep

Cómo realizar una búsqueda de patrones en archivos usando Grep

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

Cómo realizar una búsqueda Grep en todos los archivos y en todos los directorios

Cómo encontrar archivos en Debian