Shell : recuperer une variable dans un grep

steffy74 Messages postés 25 Statut Membre -  
jipicy Messages postés 41342 Statut Modérateur -
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

4 réponses

jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,
var=$(grep 'ligne(s) creée(s)' fichier | grep -Eo '^[ [:digit:]]*')
Sans l'espace entre les 2 crochets ouvrants de [:digit:]
1
kilian Messages postés 8854 Statut Modérateur 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
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
kilian Messages postés 8854 Statut Modérateur 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
steffy74 Messages postés 25 Statut Membre 1
 
je vais voir ça , merci.
0