Bash, recuper le numero de ligne dans une var

total_newbie -  
 total_newbie -
Bonjour,

je suis débutant en bash et je voudrais savoir comment recuperer dans une variable le numero de ligne d'un fichier où se trouve une chaine de caractères.
J'ai essayé avec ligne= grep -n "chaine" fichier ou encore ligne= `grep -n "chaine" fichier` mais ça ne donne rien.

merci d'avance.
A voir également:

6 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,

Essaye avec "sed" :
ligne=$(sed -n '/chaine/=' fichier)
;-))
7
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

un exemple
lami20j@debian:~/trash$ cat aaa
ligne1
ligne2
chaîne
ligne4
lami20j@debian:~/trash$ grep -n chaîne aaa
3:chaîne
lami20j@debian:~/trash$ grep -n chaîne aaa | cut -d: -f1
3
lami20j@debian:~/trash$ ligne=$(grep -n chaîne aaa | cut -d: -f1)
lami20j@debian:~/trash$ echo $ligne
3
mais attention, si le motif existe sur plusieurs lignes il te faut un tableau
1
total_newbie
 
Pendant que j'y suis dans, le cas où "chaine" apparait plusieurs fois dans "fichier",y at-il un moyen pour mettre dans "ligne" la dernière ligne où est apparu "chaine" ?
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
lami20j@debian:~/trash$ cat aaa
ligne1
ligne2
chaîne
ligne4
chaîne
ligne5
ligne1
ligne2
chaîne
ligne4
chaîne
ligne5

lami20j@debian:~/trash$ grep -n chaîne aaa | cut -d: -f1
3
5
9
11
lami20j@debian:~/trash$ ligne=$(grep -n chaîne aaa | cut -d: -f1 | tail -1)
lami20j@debian:~/trash$ echo $ligne
11
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
total_newbie
 
ben c'est vraiment rapide et efficace ici ;) :)
merci beaucoup
0
total_newbie
 
merci beaucoup pour vos réponses ;)
-1