Afficher le détail des caractères d'une chaine de texte ou d'un fichier

Le script suivant permet d'afficher, par caractères, le nombre de fois qu'il est utilisé.

$ cat compteCaracteres.awk
BEGIN {
        RS = "\n"
}
 
{
        split($0, tab, "")
        for (var in tab) {
                tab2[tab[var]]+=1
        }
}
 
END {
        for (var in tab2) {
                printf "%1s --> %6d\n" ,  var , tab2[var]
        }
        exit 0
 
}

Exemple :

$ echo "ceci est un test" | awk -f compteCaracteres.awk
u -->      1
i -->      1
n -->      1
  -->      3
c -->      2
e -->      3
s -->      2
t -->      3

On peut également effectuer un tri sur le résultat :

$ echo "ceci est un test" | awk -f compteCaracteres.awk | sort
  -->      3
c -->      2
e -->      3
i -->      1
n -->      1
s -->      2
t -->      3
u -->      1

En utilisant un fichier en entrée :

$ cat file
TARGUANT
LOGOS
SOCRATISERONS
TEMPORISERENT
PLASTIQUAIENT
CORROBORER
BOTTELES
LIGOTA
SATINERONT
HYPNOTISERA

Affichage du résultat avec un tri décroissant sur le nombre de fois que le caractère est utilisé

$ cat file | awk -f compteCaracteres.awk | sort -b -n -k 3 -r
T -->     13
O -->     12
R -->     11
E -->     10
S -->      9
A -->      8
N -->      7
I -->      7
L -->      4
P -->      3
G -->      3
U -->      2
C -->      2
B -->      2
Y -->      1
Q -->      1
M -->      1
H -->      1

Etiquettes: