Compter les lettres de l'alphabet

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

  1. Contributeur
    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
    1. 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
    2. 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
    3. Contributeur
      @GothelfePour la 1ère :
      for i in {a..z}; do grep -io "${i}" dico.txt | uniq -ic; done | sort -n
      0
    4. 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