GNU/Linux >> Tutoriels Linux >  >> Linux

Comment limiter le nombre de résultats renvoyés par grep ?

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é !


Linux
  1. Grep - Pourquoi les crochets dans le modèle Grep suppriment-ils le processus Grep des résultats Ps?

  2. Limite pratique du nombre d'instantanés Btrfs ?

  3. Comment supprimer la sortie de Grep, afin qu'elle ne renvoie que le statut de sortie ?

  4. Avec la commande "cat" de Linux, comment afficher uniquement certaines lignes par numéro ?

  5. Comment remplir un fichier avec un flux de /dev/urandom avec un nombre de lignes spécifié ?

5 façons de compter le nombre de lignes dans un fichier

Comment trouver le nombre de lignes verticales disponibles dans le terminal ?

Comment faire un tracé graphique d'une séquence de nombres à partir de l'entrée standard ?

Compter le nombre total de correspondances avec grep au lieu du nombre de lignes qui correspondent

Linux - grep de certaines lignes à la fin du fichier

Comment chmod les fichiers en fonction des résultats de la commande find