Eine andere Möglichkeit ist einfach die Verwendung von head:
grep ...parameters... yourfile | head
Dies erfordert nicht das Durchsuchen der gesamten Datei - es wird beendet, wenn die ersten zehn übereinstimmenden Zeilen gefunden werden. Ein weiterer Vorteil bei diesem Ansatz ist, dass nicht mehr als 10 Zeilen zurückgegeben werden, selbst wenn Sie grep mit der Option -o verwenden.
Wenn die Datei beispielsweise die folgenden Zeilen enthält:
112233
223344
123123
Dann ist dies der Unterschied in der Ausgabe:
$ grep -o '1.' yourfile | head -n2 11 12 $ grep -m2 -o '1.' 11 12 12
Mit head
gibt wie gewünscht nur 2 Ergebnisse zurück, während -m2 3 zurückgibt.
Die -m
Option ist wahrscheinlich das, wonach Sie suchen:
grep -m 10 PATTERN [FILE]
Ab 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.
Hinweis:grep stoppt das Lesen der Datei, sobald die angegebene Anzahl von Übereinstimmungen gefunden wurde!