Shell Commande sed dans boucle

Résolu
Bonjour,

voila je bloque depuis 1h sur un exercice et je ne trouve tjrs pas la solution, merci de m'aider si possible

Exo : Des enseignant utilisent des fichier csv pour communiquer les notes de leurs étudiants.
dans le fichier csv les note sont sous la forme : Nom;Prenom;note1;note2;note3;......sur chaque ligne.
Ecrire un script moyennes qui affiche les moyennes sous forme: Prenom Nom moyenne.

Merci de m'aider
ps 2eme parie de la qst je ne comprends pas pourquoi en faisant

cat note.txt | { while read ligne
do
sed 's/^\([^;]*\);\([^;]*\);.*$/\2 \1/'
echo "****fin de la ligne****"
done ;}

je me retrouve avec :
Albert Camus
george clooney
Pierre LePon
****fin de la ligne****

et nom pas "****fin de la ligne****" a la fin de chaque ligne
merci de votre aide....
Mr.Tomson

7 réponses

  1. Voici , j'ai fini par trouver la solution de l'exercice ,
    encore merci a zipe31,

    #! /bin/sh
    FILE=$1
    IFS=';'

    while read nom prenom notes; do
    set $notes
    n=$#
    s=0
    for c in "$@"; do
    s=$((s+c))
    done
    echo $prenom $nom $((s/n))
    done < $FILE
    1. Contributeur
      Salut,

      Essaies plutôt :

      while read ligne
      do
      sed 's/^\([^;]*\);\([^;]*\);.*$/\2 \1/' <<<"${ligne}"
      echo "****fin de la ligne****"
      done < note.txt
      1. Salut,
        je te remercie c'etait ca la solution
    2. "...ah mais je ne savais pas que la charte interdisait d'exposer des problèmes, ..."

      ne pas confondre tes exercices et des vrais problèmes.
      1. ah mais je ne savais pas que la charte interdisait d'exposer des problèmes,
        et sinon une idée pour la seconde partie avec la commande sed dans la boucle pourquoi je retrouve ce résultat.
        1. Salut, j'espère avoir des reponse plus constructifs, et non tu vois bien que j'ai essayé de trouver la solution par moi même.