Shell : recuperer une variable dans un grep

Fermé
steffy74 Messages postés 25 Date d'inscription vendredi 3 octobre 2008 Statut Membre Dernière intervention 5 mai 2009 - 14 nov. 2008 à 14:36
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 14 nov. 2008 à 19:57
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 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
14 nov. 2008 à 19:57
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 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
14 nov. 2008 à 14:58
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 Date d'inscription vendredi 3 octobre 2008 Statut Membre Dernière intervention 5 mai 2009 1
14 nov. 2008 à 15:04
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 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
14 nov. 2008 à 15:22
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 Date d'inscription vendredi 3 octobre 2008 Statut Membre Dernière intervention 5 mai 2009 1
14 nov. 2008 à 15:24
je vais voir ça , merci.
0