[SHELL/BASH] SED récupération d'un valeur de fin de ligne

Résolu/Fermé
Mortallys Messages postés 186 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 19 février 2018 - Modifié par Mortallys le 15/09/2016 à 11:08
Mortallys Messages postés 186 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 19 février 2018 - 15 sept. 2016 à 12:37
Bonjour,

Je viens à vous aujourd'hui car j'aurais besoin d'aide sur l'utilisation de la commande SED.

J’essaye tant bien que mal de récupéré des valeurs à passé en variable mais impossible pour le moment.

df -h | grep /dev/sda

Me donne : /dev/sda2 48G 8.2G 37G 19% /

Je souhaiterais récupéré récupéré chaque valeur dans une variable :
NAME serais égal à /dev/sda2
TOTAL serais égal à 48G
UTILISE serais égal à 8.2G
LIBRE serais égal à 37G
POUCENT_UTILISE serais égal à 19%

J'ai essayer avec sed mais je n'arrive pas à faire la sélection si quelqu'un pouvais m'aider et aussi m'expliquer la syntaxe car j'ai beau regarder d'autre poste et lire les man/tuto sed j'y comprend rien :s


1 réponse

UnGnU Messages postés 1156 Date d'inscription lundi 2 mai 2016 Statut Contributeur Dernière intervention 22 décembre 2020 151
15 sept. 2016 à 11:18
Salut,

man bash (read)

$ df -hT | grep 'sda6'
/dev/sda6 ext4 92G 5,1G 82G 6% /home

$ read -u 0 A B C D E F G < <(df -hT | grep 'sda6')

$ echo $A
/dev/sda6

$ echo $A $C
/dev/sda6 92G

$ echo $G
/home

Je te laisse changer le nom des variables (A B C D E F G) à ta guise ;-)
1
Mortallys Messages postés 186 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 19 février 2018 16
15 sept. 2016 à 11:29
Ok, comme on dit pourquoi faire simple quand on peu faire compliquer et pour le coup j'étais parti bien loin...

Merci pour cette solution qui fonctionne à merveille.
Par contre juste question sur la syntaxe le 0 renvoie le bash normal par contre pourquoi mettre un espace entre les deux "<" ?
0
UnGnU Messages postés 1156 Date d'inscription lundi 2 mai 2016 Statut Contributeur Dernière intervention 22 décembre 2020 151 > Mortallys Messages postés 186 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 19 février 2018
15 sept. 2016 à 12:33
le 0 renvoie le bash normal
Euh... non, là le zéro indique le descripteur d'entrée pour le paramètre
-u
de la commande
read
.

pourquoi mettre un espace entre les deux "<" ?
C'est la syntaxe pour la substitution de processus.
0
Mortallys Messages postés 186 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 19 février 2018 16
15 sept. 2016 à 12:37
Ok merci pour vos réponses, le sujet est résolue grâce à vous, je clôture donc se post.

Encore merci ;)
0