Compter les lettres de l'alphabet

Résolu/Fermé
Gothelfe Messages postés 9 Date d'inscription samedi 29 décembre 2012 Statut Membre Dernière intervention 16 mars 2017 - 15 mars 2017 à 22:48
Gothelfe Messages postés 9 Date d'inscription samedi 29 décembre 2012 Statut Membre Dernière intervention 16 mars 2017 - 16 mars 2017 à 12:35
Bonjour,

Je tente de faire un comptage sur toutes les lettres de l'alphabet (de A à Z) dans une sorte de fichier dictionnaire.
Le code que je j'utilise pour trouver une lettre est :
$ echo `grep -oi "a" dico.txt | wc -l` " a" > decompte.txt

Le soucis est que je ne sait pas comment faire au plus simple pour avoir toutes les lettres de l'alphabet sans être obligé de retaper 26 fois la même ligne de code

Merci pour votre future aide ^^

1 réponse

UnGnU Messages postés 1158 Date d'inscription lundi 2 mai 2016 Statut Contributeur Dernière intervention 22 décembre 2020 157
16 mars 2017 à 07:48
Salut,

Soit tu passes par une boucle for :
for lettre in {a..z}; do grep -oi "${lettre}" ...;done


Soit tu optes pour une autre solution :
grep -o '[[:alnum:]]' fich | sort | uniq -ic

1
Gothelfe Messages postés 9 Date d'inscription samedi 29 décembre 2012 Statut Membre Dernière intervention 16 mars 2017
16 mars 2017 à 07:58
Salut,
Merci pour ta réponse rapide ^^
J'avais tenter une boucle "for" mais avec "seq" ce qui je t'avoue n'as pas fonctionner :/
Je tente ta réponse et reviens vers toi.
0
Gothelfe Messages postés 9 Date d'inscription samedi 29 décembre 2012 Statut Membre Dernière intervention 16 mars 2017
16 mars 2017 à 09:06
re,

J'ai tenter la première solution qui n'as pas fonctionner. Par contre la deuxième semble bien fonctionner ^^ Maintenant je vais tenter de faire sortir tout cela sur écran en ayant pris soin de trier les résultats du plus petit au plus grand.
Une fois que je l'aurais fait je mettrais mon code entier en réponse sur le forum pour aider d'autres personnes qui en aurait besoin.
Merci UnGnu
0
UnGnU Messages postés 1158 Date d'inscription lundi 2 mai 2016 Statut Contributeur Dernière intervention 22 décembre 2020 157 > Gothelfe Messages postés 9 Date d'inscription samedi 29 décembre 2012 Statut Membre Dernière intervention 16 mars 2017
16 mars 2017 à 09:18
Pour la 1ère :
for i in {a..z}; do grep -io "${i}" dico.txt | uniq -ic; done | sort -n
0
Gothelfe Messages postés 9 Date d'inscription samedi 29 décembre 2012 Statut Membre Dernière intervention 16 mars 2017
Modifié par Gothelfe le 16/03/2017 à 12:36
Voici le programme finalisé :

#! /bin/bash
if [ -z $1];
then echo "Aucun paramètre présent !"
elif [ -f $1];
then grep -o '[[:alnum:]]' $1 | sort | uniq -ic | sort -gr
else echo "Le fichier spécifier est absent !"
fi

Merci à UnGnU de m'avoir aider ^^
0