substitute length example search awk grep

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