GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo buscar una palabra en todo el contenido de un directorio en Linux

xargs espera entrada en un formato que no produce ningún otro comando, por lo que es difícil de usar de manera efectiva. Lo que está mal aquí es que tiene un archivo cuyo nombre se debe citar en la entrada de xargs (probablemente contenga un ' ).

Si su grep es compatible con -r o -R opción para la búsqueda recursiva, utilícela.

grep -r word .

De lo contrario, utilice el -exec principal de find . Esta es la forma habitual de lograr el mismo efecto que xargs , excepto sin restricciones en los nombres de archivo. Versiones razonablemente recientes de find permite agrupar varios archivos en una sola llamada al comando auxiliar. Pasando /dev/null a grep asegura que mostrará el nombre del archivo delante de cada coincidencia, incluso si se llama en un solo archivo.

find . -type f -exec grep word /dev/null {} +

Versiones anteriores de find (en sistemas más antiguos u OpenBSD, o utilidades reducidas como BusyBox) solo puede llamar al comando auxiliar en un archivo a la vez.

find . -type f -exec grep word /dev/null {} \;

Algunas versiones de find y xargs tienen extensiones que les permiten comunicarse correctamente, usando caracteres nulos para separar los nombres de los archivos para que no se requieran comillas. En estos días, solo OpenBSD tiene esta característica sin tener -exec … {} + .

find . -type f -print0 | xargs -0 grep word /dev/null

Supongo que te refieres a la primera opción

grep recursivo, para buscar contenido dentro de archivos

grep -R "content_to_search" /path/to/directory

ls recursivo, para buscar archivos que coincidan

ls -lR | grep "your_search"

Si tiene las herramientas GNU (lo que hace si la etiqueta de Linux es precisa), puede usar -print0 y -0 para sortear los problemas habituales de cotización:

find . -type f -print0 | xargs -0 grep word

Linux
  1. Cómo encontrar un archivo en Linux

  2. Linux:¿cómo saber qué hacer con Grep en Dmesg?

  3. Linux:¿cómo buscar una palabra específica y tomar texto?

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

  5. ¿Cómo puedo ejecutar dos2unix en un directorio completo?

Cómo encontrar archivos en Linux con el comando Buscar

Cómo usar el comando grep en Linux/UNIX

Cómo contar archivos en el directorio en Linux

Cómo encontrar una cadena en un archivo en Linux

Cómo buscar archivos desde la línea de comandos de Linux

Cómo encontrar el tamaño total de un directorio en Linux