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.
Configuration: Linux
Firefox 2.0.0.8

6 réponses

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

    Essaye avec "sed" :
    ligne=$(sed -n '/chaine/=' fichier)
    ;-))
    7
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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
  3. 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
  4. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

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