Shell Commande sed dans boucle

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

A voir également:

7 réponses

ghani
 
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.
0
Utilisateur anonyme
 
désolé, mais la charte est claire....
0
ghani
 
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 
"...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.
0
zipe31 Messages postés 38797 Statut Contributeur 6 433
 
Salut,

Essaies plutôt :

while read ligne
do
sed 's/^\([^;]*\);\([^;]*\);.*$/\2 \1/' <<<"${ligne}"
echo "****fin de la ligne****"
done < note.txt
0
ghani
 
Salut,
je te remercie c'etait ca la solution
0
ghani
 
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
0