search - length - Grep list nombre de archivo y número de línea
substitute awk (3)
Hola, estoy intentando buscar en mi directorio de rails usando grep. Estoy buscando una palabra específica y quiero grep para imprimir el nombre del archivo y el número de línea. ¿Hay una bandera grep que haga esto por mí? He estado tratando de usar una combinación de -n y -l, pero estos están imprimiendo los nombres de los archivos sin números o simplemente arrojando una gran cantidad de texto al terminal que no se puede leer fácilmente.
ex:
grep -ln "search" *
¿Necesito canalizarlo a un awk?
Creo que -l
es demasiado restrictivo ya que suprime la salida de -n
. Sugeriría -H
( --with-filename
): Imprime el nombre del archivo para cada coincidencia.
grep -Hn "search" *
Si eso da demasiada salida, intente -o
solo imprimir la parte que coincida.
grep -nHo "search" *
Me gusta usar:
grep -niro ''searchstring'' <path>
Pero eso es solo porque siempre me olvido de las otras formas y no puedo olvidar a Robert de grep -
niro por alguna razón :)
grep -rin searchstring * | cut -d: -f1-2
Esto podría decir, buscar recursivamente (para la cadena de searchstring
cadenas en este ejemplo), ignorar mayúsculas y minúsculas y mostrar números de líneas. La salida de ese grep se verá algo así como:
/path/to/result/file.name:100: Line in file where ''searchstring'' is found.
A continuación, canalizamos ese resultado al comando de corte usando dos puntos :
como nuestro delimitador de campo y mostrando los campos 1 a 2.
Cuando no necesito los números de línea, a menudo uso -f1
(solo el nombre de archivo y la ruta), y luego canalizo la salida a uniq
, de modo que solo veo cada nombre de archivo una vez:
grep -ir searchstring * | cut -d: -f1 | uniq