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

Résolu
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

  1. Contributeur
    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
    1. 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
    2. Contributeur
      @Mortallys
      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
    3. Ok merci pour vos réponses, le sujet est résolue grâce à vous, je clôture donc se post.

      Encore merci ;)
      0