grep múltiples patrones e imprima resultados con el patrón coincidente

grep múltiples patrones e imprima resultados con el patrón coincidente

Estoy buscando buscar varios archivos con múltiples valores. Por ejemplo: grep -f filename.txt /home/* -R
(nombre de archivo.txt contiene varios valores)

Pero necesito saber qué archivo contenía qué valor.
Por ejemplo: /home/blah.txt contiene valor1, /home/aaa.txt contiene valor2, etc.

¿alguna sugerencia?

Respuesta1

Puedes hacer esto usando algunas de las banderas proporcionadas por grep.

Puedes probar el siguiente comando:

grep -R -f filename.txt /home/*buscará cualquier patrón dentro de su filename.txtarchivo y lo comparará recursivamente con todos los archivos dentro de su carpeta de inicio. Obtendrás un resultado como este:

#here my filename contains the entries bash and Bingo
$grep -R -f filename.txt /home/*
/home/user/.bash_history:vi .bashrc
/home/user/.bash_history:vi .bashrc
/home/user/.bash_history:awk -v RS=END_WORD '/Bingo1/ && /Bingo2/' test2.txt | grep -o 'Pokeman.*'

grepgenerará el nombre del archivo y la línea completa que contiene su patrón.

Si solo desea mostrar el patrón encontrado, pruebe el siguiente comando:

#here the -o flag only displays the matched values, and -n adds the line number
$grep -R -o -n -f test /home/*
/home/user/.bash_history:128:bash
/home/user/.bash_history:156:bash
/home/user/.bash_history:193:Bingo

Respuesta2

Esto debería funcionar para su situación:

grep -HRnF '<pattern>' . --include "<file_name>"

Entonces, para buscar la palabra 'prueba' en todos los archivos que terminan en .txt, use algo como:

grep -HRnF 'test' . --include "*.txt"

Respuesta3

GNU greptiene la opción -o:

-o, --solo-coincidencia

Imprima solo las partes coincidentes (no vacías) de una línea coincidente, con cada una de esas partes en una línea de salida separada.

Entonces esto debería hacer lo que quieras.

grep -f filename.txt -R -H -o /home/*

Tenga en cuenta que también agregué -H(-with-filename) para imprimir el nombre del archivo siempre.

información relacionada