Compter les lettres de l'alphabet

Résolu
Gothelfe Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
Gothelfe Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Contributeur Dernière intervention   158
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   158 > Gothelfe Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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