grep sin mostrar ruta / archivo: línea


¿Cómo grep y solo devuelve la línea correspondiente? es decir, la ruta/nombre de archivo se omite de los resultados.

En este caso quiero mirar en todos .archivos de barras en el directorio actual, buscando el término FOO

find . -name '*.bar' -exec grep -Hn FOO {} \;
Author: codeforester, 2013-10-16

3 answers

No es necesario find. Si solo está buscando un patrón dentro de un directorio específico, esto debería ser suficiente:

grep -hn FOO /your/path/*.bar

Donde -h es el parámetro para ocultar el nombre del archivo, como desde man grep:

-h, no no-filename

Suprime el prefijo de los nombres de archivo en la salida. Este es el valor predeterminado cuando solo hay un archivo (o solo entrada estándar) para buscar.

Tenga en cuenta que estaba usando

-H, with with-filename

Imprima el nombre del archivo para cada coincidencia. Este es el valor predeterminado cuando hay más de un archivo para buscar.

 258
Author: fedorqui,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-03 06:04:33

Simplemente reemplace -H por -h. Compruebe man grep para más detalles sobre las opciones

find . -name '*.bar' -exec grep -hn FOO {} \;
 6
Author: jkshah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-16 15:05:08

No es realmente tan difícil de buscar en la página de manual, ¿verdad?

-h, --no-filename
    Suppress the prefixing of file names on output. This is the default when there
    is only one file (or only standard input) to search.
 1
Author: TC1,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-18 12:33:42