Une autre option consiste simplement à utiliser head :
grep ...parameters... yourfile | head
Cela ne nécessitera pas de rechercher l'intégralité du fichier - il s'arrêtera lorsque les dix premières lignes correspondantes seront trouvées. Un autre avantage de cette approche est qu'elle ne renverra pas plus de 10 lignes même si vous utilisez grep avec l'option -o.
Par exemple si le fichier contient les lignes suivantes :
112233
223344
123123
Alors voici la différence dans la sortie :
$ grep -o '1.' yourfile | head -n2 11 12 $ grep -m2 -o '1.' 11 12 12
Utilisation de head
renvoie seulement 2 résultats comme souhaité, alors que -m2 en renvoie 3.
Le -m
l'option est probablement ce que vous recherchez :
grep -m 10 PATTERN [FILE]
À partir de 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.
Remarque :grep arrête de lire le fichier une fois que le nombre spécifié de correspondances a été trouvé !