#1 Le 11/08/2018, à 15:26
- MagicDav
Problème commande "sort" suite intégration couleur dans "printf"
Bonjour à tous,
Pour une formation, je dois réaliser l'exercice suivant: créer un script Bash qui fournit des statistiques sur l'utilisation des lettres dans une langue - à partir du fichier (www.siteduzero.com/uploads/fr/ftp/mateo21/cpp/dico.zip)
J'arrive à mon résultat, sauf quand j'ajoute de la couleur (printf "\033...), la commande "sort" ne fait plus correctement son travail de classement décroissant...
Au passage, je me demande aussi comment je pourrais repartir au début de mon script après "recommencez" (dernier elif)
Mercissssssssssssssssssssssssssss d'avance, David
****
#!/bin/bash
dico=$1
choix=$2
echo "Entrez votre choix d'affichage - coul ou nb:"
read -r choix
if [ "$choix" = "coul" ]; then
for lettre in {A..Z}; do
printf "\033[31m%s - \033[36m%s\033[0m\n" $(grep -ic $lettre "$dico") $lettre
done | sort -rn
elif [ "$choix" = "nb" ]; then
for lettre in {A..Z}; do
printf "%s - %s\n" $(grep -ic $lettre "$dico") $lettre
done | sort -rn
elif [ "$choix" = "" ]; then
echo "Il faut savoir choisir dans la vie - recommencez!"
else
echo "Choisir, c'est renoncer!"
fi
*****
Modération : merci d'utiliser les balises code (explications ici).
Dernière modification par cqfd93 (Le 11/08/2018, à 16:47)
Hors ligne
#2 Le 11/08/2018, à 16:55
- pingouinux
Re : Problème commande "sort" suite intégration couleur dans "printf"
Bonjour,
1) Inutile d'initialiser choix en début de script, puisque tu le lis ensuite
2) Pour relancer le script, avec les mêmes paramètres
./le_script "$@"
3) Tu peux ne faire qu'un seule boucle sur les lettres, enchaîner le sort, et ne faire les printf que sur le résultat
Hors ligne
#3 Le 11/08/2018, à 17:01
- Watael
Re : Problème commande "sort" suite intégration couleur dans "printf"
salut,
mais pourquoi suivre un cours sur un site, et ne pas utiliser le forum dudit site !?
dans un premier temps, puisqu'on voit que la démarche est identique, traiter la recherche, et concaténer les résultats dans un tableau,
ENSUITE, produire l'affichage du tableau selon le choix de l'utilisateur.
et il faut adapter ta commande grep : là, elle ne compte que les lignes où figurent le caractères :
$ grep -ic a <<<abracadabra
1
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#4 Le 12/08/2018, à 08:00
- MagicDav
Re : Problème commande "sort" suite intégration couleur dans "printf"
Bonjour tous les deux... effectivement, je m'intéresserais au forum du cours la prochaine fois ;-)
Merci pour votre aide et vos conseils :-)
David
Hors ligne