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