varios varias texto sólo start siguientes regulares que patrones para palabras mostrará líneas los las expresiones egrep cuál contar con comienzan comandos comando buscar archivos linux

linux - varias - grep varios patrones



Cómo mostrar el resultado de grep con la ruta completa o el nombre del archivo (9)

¿Has intentado usar la bandera -l ?

grep -l somethingtosearch

Esto devolverá solo las rutas y los nombres de los archivos donde se encontró la búsqueda, no todas las líneas donde se realizó la coincidencia.

Usar con la bandera -r para recursión.

Necesito saber la ruta completa del archivo cuando grep .

Yo uso comandos como

cat *.log | grep somethingtosearch

Ahora, lo que necesito para mostrar el resultado con la ruta completa del archivo desde donde se eliminó el resultado coincidente.

Ayudar a alguien?


Caigo aquí cuando estaba buscando exactamente el mismo problema y tal vez pueda ayudar a otros.

Creo que la verdadera solución es:

cat *.log | grep -H somethingtosearch


Es similar a la respuesta de BVB Media .

grep -rnw ''blablabla'' `pwd`

Funciona bien en mi fiesta de Ubuntu.


La forma más fácil de imprimir rutas completas es reemplazar la ruta de inicio relativa con la ruta absoluta:

grep -r --include="*.sh" "pattern" ${PWD}


Mando:

grep -rl --include="*.js" "searchString" ${PWD}

Salida devuelta:

/root/test/bas.js


Si desea ver las rutas completas, le recomendaría que se cd al directorio superior (de su unidad si usa Windows)

cd C:/ grep -r somethingtosearch C:/Users/Ozzesh/temp

O en Linux:

cd / grep -r somethingtosearch ~/temp

Si realmente se resiste a su filtro de nombre de archivo (* .log) Y desea que sea recursive (los archivos no están todos en el mismo directorio), la combinación de find y grep es la forma más flexible:

cd / find ~/temp -iname ''*.log'' -type f -exec grep somethingtosearch ''{}'' /;


Suponiendo que tiene dos archivos de registro en:

  • C: /temp/my.log
  • C: /temp/alsoMy.log

cd a c: y uso:

grep -r somethingtosearch temp/*.log

Te dará una lista como:

temp/my.log:somethingtosearch temp/alsoMy.log:somethingtosearch1 temp/alsoMy.log:somethingtosearch2


Utilizar:

grep somethingtosearch *.log

y los nombres de los archivos se imprimirán junto con los partidos.


para mi
grep -b "searchsomething" * .log funcionó como yo quería