Un'altra opzione è semplicemente usare head:
grep ...parameters... yourfile | head
Ciò non richiederà la ricerca dell'intero file:si interromperà quando verranno trovate le prime dieci righe corrispondenti. Un altro vantaggio di questo approccio è che non restituirà più di 10 righe anche se utilizzi grep con l'opzione -o.
Ad esempio se il file contiene le seguenti righe:
112233
223344
123123
Quindi questa è la differenza nell'output:
$ grep -o '1.' yourfile | head -n2 11 12 $ grep -m2 -o '1.' 11 12 12
Utilizzando head
restituisce solo 2 risultati come desiderato, mentre -m2 restituisce 3.
Il -m
opzione è probabilmente quello che stai cercando:
grep -m 10 PATTERN [FILE]
Da man grep
:
-m NUM, --max-count=NUM
Stop reading a file after NUM matching lines. If the input is
standard input from a regular file, and NUM matching lines are
output, grep ensures that the standard input is positioned to
just after the last matching line before exiting, regardless of
the presence of trailing context lines. This enables a calling
process to resume a search.
Nota:grep interrompe la lettura del file una volta trovato il numero specificato di corrispondenze!