GNU/Linux >> Tutoriels Linux >  >> Linux

Trouver uniquement la première occurrence en utilisant uniquement Grep ?

Supposons que j'ai un fichier avec beaucoup de mots, je veux trouver uniquement le premier mot avec le motif "xyz". Comment faire s'il y a plusieurs mots avec ce modèle sur la même ligne ?
-m renvoie tous les mots de la première ligne auxquels il correspond. Je n'ai besoin que de la commande grep.

Réponse acceptée :

Par défaut grep imprime les lignes correspondant à un motif, donc si le motif apparaît une ou plusieurs fois dans une ligne, grep imprimera toute la ligne.

Ajout du drapeau -m 7 dira grep pour n'imprimer que les 7 premières lignes où le motif apparaît.

Cela devrait donc faire ce que vous voulez (je ne l'ai pas testé):

grep -o -m 1 xyz myfile | head -1

Edit :comme l'a souligné @Kusalananda, vous n'avez pas strictement besoin du -m flag mais l'utiliser signifie grep n'aura pas besoin d'analyser l'intégralité du fichier et produira le résultat plus rapidement, surtout si myfile est un gros fichier.


Linux
  1. Correspondance de modèle multiligne à l'aide de Sed, Awk ou Grep ?

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

  3. Trouver le numéro de ligne qui contient le modèle à l'aide du délimiteur Regex personnalisé ?

  4. Comment rechercher un texte spécifique à l'aide de GREP sous Linux

  5. Utiliser grep et sed pour rechercher et remplacer une chaîne

Résoudre Wordle en utilisant la ligne de commande Linux

Comment effectuer une recherche de modèle dans les fichiers à l'aide de Grep

Comment trouver des fichiers en utilisant la ligne de commande dans le terminal Linux

Utilisation de la commande GREP sous Linux avec des exemples

Rechercher du texte dans des fichiers sous Linux à l'aide de grep

Recherche de fichiers exécutables à l'aide de ls et grep