Bash, recuper le numero de ligne dans une var

Fermé
total_newbie - 14 nov. 2007 à 01:09
 total_newbie - 14 nov. 2007 à 21:41
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 jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
14 nov. 2007 à 07:17
Salut,

Essaye avec "sed" :
ligne=$(sed -n '/chaine/=' fichier)
;-))
7
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
14 nov. 2007 à 07:15
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
14 nov. 2007 à 21:21
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
14 nov. 2007 à 21:35
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
14 nov. 2007 à 21:41
ben c'est vraiment rapide et efficace ici ;) :)
merci beaucoup
0
total_newbie
14 nov. 2007 à 16:53
merci beaucoup pour vos réponses ;)
-1