2011-08-04 15 views
5

acuerdo con el manual de grep,grep -l y grep ln

-l, --files-with-matches 
      Suppress normal output; instead print the name of each input 
      file from which output would normally have been printed. The 
      scanning will stop on the first match. 

grep -l, esto parece muy bien porque cuando se encuentra una coincidencia, el nombre del archivo que contiene el partido se hizo eco.

Sin embargo, cuando hago un grep -ln, grep repite cada línea de la ocurrencia.

¿Significa realmente el grep -l detener cuando se encuentra la primera coincidencia y detener el escaneo, mientras que grep -ln ignorará el indicador -l?

Respuesta

6

Esas opciones son incompatibles. Use grep -Hnm 1 si desea mostrar el número de línea de la primera coincidencia (y solo la primera coincidencia) en cada archivo.

-H, --con-filename
Imprimir el nombre del archivo para cada partido.

-n, --line-número
Prefijo cada línea de salida con el número de línea dentro de su archivo de entrada.

-m NUM, --max-count = NUM ​​
dejar de leer un archivo después de NUM las líneas que coincidan.