Le grep suivant
grep -r -e -n coll *
affichera
fullpath/filename: <tag-name>coll</tag-name>
Je voudrais savoir quelle ligne a le texte suivant, j'ai essayé d'ajouter -n
, mais cela n'a pas fonctionné. J'ai essayé d'ajouter | grep -n *
, mais cela a eu un effet bizarre.
Ce que j'aimerais voir (peu m'importe le format), c'est
fullpath/filename:10: <tag-name>coll</tag-name>
Vous devriez mettre -e
à la fin de la liste des options: grep -rne coll *
pas besoin de -r & -e!
obtenir le numéro de ligne d'un motif!
grep -n "pattern" file.txt
si vous voulez obtenir uniquement le numéro de ligne en sortie, ajoutez-y une autre commande grep!
grep -n "pattern" file.txt | grep -Eo '^[^:]+'
Pour grep un motif dans un fichier spécifique et obtenir les lignes correspondantes:
grep -n <Pattern> <File> | awk -F: '{ print $1 }' | sort -u
ou en utilisant cut
comme suggéré par @wjandrea:
grep -n <Pattern> <File> | cut -f1 -d: | sort -u
où
<Pattern>
est un motif global cité (utilisez l'option -E
pour regexp);<File>
est le fichier qui vous intéresse;awk ...
filtre les numéros de ligne dans la sortie de grep (avant :
sur chaque ligne);