Problème avec la commande AWK
Résolu
Bojamin
-
jee pee Messages postés 42459 Date d'inscription Statut Modérateur Dernière intervention -
jee pee Messages postés 42459 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Après avoir fait un script Shell permettant de renseigner des notes pour des élèves dans un fichier csv. J'aimerais séparer les différents champs pour les mettre dans des colonnes séparées.
Actuellement j'ai toutes mes informations dans la même case quand j'ouvre un excel ce qui rend la chose illisible au possible.
J'ai commencer à chercher une solution mais je ne trouve pas grand chose.
Après avoir fait un script Shell permettant de renseigner des notes pour des élèves dans un fichier csv. J'aimerais séparer les différents champs pour les mettre dans des colonnes séparées.
Actuellement j'ai toutes mes informations dans la même case quand j'ouvre un excel ce qui rend la chose illisible au possible.
J'ai commencer à chercher une solution mais je ne trouve pas grand chose.
#!/bin/bash
clear
eleve=$1
classe=$2
while [[ -z $eleve ]] || [[ $eleve -eq "${eleve##[0-9]*}" ]]
do
read -p 'Il faut un nombre délèves valide : ' eleve
done
for (( i=1; i <= $eleve; i++ ))
do
read -p 'Il faut une note entre 0 et 20 : ' note
while [[ -z $note ]] || [[ $note -gt 20 ]] || [[ $note -eq "${note##[0-9]*}" ]]
do
read -p 'Mets une note entre 0 et 20 ! : ' note
done
read -p 'Pouvez vous me donner un prénom : ' prenom
read -p 'Pouvez vous me donner un nom : ' nom
if [ 18 -le "$note" ]; then
resultat="Parfait"
elif [ 16 -le "$note" ]; then
resultat="Très bien"
elif [ 14 -le "$note" ]; then
resultat="Bien"
elif [ 11 -le "$note" ]; then
resultat="Assez bien"
elif [ "$note" -lt 11 ] && [ "$note" -ge 0 ]; then
resultat="Insuffisant"
elif [ "$note" -lt 0 ]; then
echo "Vous ne pouvez pas avoir en dessous de 0"
fi
echo "L'élève n°"$i": "$nom $prenom" a eu cette note: "$note". C'est "$resultat.
#echo $prenom >> notes.csv; echo $nom >> notes.csv ; echo $note >> notes.csv; echo $resultat >> notes.csv
echo $prenom,$nom,$note,$resultat >> notes.csv | awk -F"," '{echo $1 " " $2 "," $3 " " $4 " " $5 "," $7}'
done
Configuration: Windows / Chrome 78.0.3904.87
A voir également:
- Problème avec la commande AWK
- Invite de commande - Guide
- Commande terminal mac - Guide
- Commande dism - Guide
- Commande scannow - Guide
- Diskpart commande - Guide
2 réponses
Salut,
Et si tu nous montrais ce que tu as comme résultat dans ton fichier et ce que tu attends.
La commande awk est inutile !
les commandes echo et printf peuvent faire ce que tu attends.
Et si tu nous montrais ce que tu as comme résultat dans ton fichier et ce que tu attends.
La commande awk est inutile !
les commandes echo et printf peuvent faire ce que tu attends.
Bonjour,
Un fichier .csv c'est un fichier avec des champs séparés par un ";"
Il suffit peut être de faire :
Un fichier .csv c'est un fichier avec des champs séparés par un ";"
Il suffit peut être de faire :
echo $prenom";"$nom";"$note";"$resultat >> notes.csv