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.