Shell : recuperer une variable dans un grep

steffy74 Messages postés 25 Statut Membre -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

J'aimerais savoir comment je pourrais à l'aide de la commande grep je pense récupérer un chiffre et le mettre dans une variable.
par exemple j'ai un fichier qui contient entre autre la ligne suivante :

10 ligne(s) creée(s)

Comment récupérer le 10 dans une variable ?

Merci pour votre aide
Configuration: Windows XP
Firefox 3.0.3

4 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    var=$(grep 'ligne(s) creée(s)' fichier | grep -Eo '^[ [:digit:]]*')
    Sans l'espace entre les 2 crochets ouvrants de [:digit:]
    1
  2. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Tu peux capturer uniquement ce qui t'interesse dans une ligne avec l'option -o
    Par exemple ici:
    mavar=$(echo $maligne | grep -Eo "^[0-9]+")
    0
  3. steffy74 Messages postés 25 Statut Membre 1
     
    merci mais je ne connais pas "$maligne"

    en fait je sais que je vais avoir la ligne
    n ligne(s) créée(s)
    dans mon fichier.
    Il faut que je boucle sur mon fichier avec un read ??
    0
    1. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
       
      Si tu as un fichier avec plusieurs lignes, alors il te faut plusieurs variables, ou un tableau....
      i=0
      
      cat monfichier | while read -r $ligne
      do
         tab[i]=$(echo $ligne | grep -Eo)
         ((i=i+1))
      done

      J'ai pas testé m'enfin ça doit pas être loin...
      0
  4. steffy74 Messages postés 25 Statut Membre 1
     
    je vais voir ça , merci.
    0