Otra opción es simplemente usar head:
grep ...parameters... yourfile | head
Esto no requerirá buscar en todo el archivo; se detendrá cuando se encuentren las primeras diez líneas coincidentes. Otra ventaja de este enfoque es que no devolverá más de 10 líneas incluso si está utilizando grep con la opción -o.
Por ejemplo, si el archivo contiene las siguientes líneas:
112233
223344
123123
Entonces esta es la diferencia en la salida:
$ grep -o '1.' yourfile | head -n2 11 12 $ grep -m2 -o '1.' 11 12 12
Usando head
devuelve solo 2 resultados deseados, mientras que -m2 devuelve 3.
El -m
La opción es probablemente lo que estás buscando:
grep -m 10 PATTERN [FILE]
Desde 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 deja de leer el archivo una vez que se encuentra el número especificado de coincidencias!