Compter la longueur des mots d'un fichier avec awk

Braveorc Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
Braveorc Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, Je suis tout nouveau ici sur ces forums, je me présente je suis étudiant (bref, de retour aux études après 20+ années sur le marché du travail) et je fait présentement un cour sur la gestion et sécurité des réseaux.

Evidemment ce n'est pas chose aisée mais je me débrouille assez bien en général.

Bon, présentement je travaille à approfondir mes connaissances qui sont très de base sur AWK (dans CentOS 6.6 si ca peut changer quelque chose) et j'essaie d'établir dans un petit programme awk une facon de faire les choses suivantes:

Dans un très long fichier, compter la longueur de lettres de tout les mots qu'il contient (il y en a un par ligne apres que je l'ai nettoyé) et afficher le résultat de la facon suivante (ou similaire)

Taille---------NBRE de mots
4--------------203
5--------------300
6--------------460
7--------------640

etc

J'ai fait plusieurs ébauches en utilisant print length($0)) mais je n'arrive pas a faire comptabiliser et afficher comme ci haut.

je demarre mon script comme cela
awk -f monfichier.awk fichier_a_analyser.txt

Merci à l'avance.
A voir également:

2 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
que représente NBRE de mots si il n'y a qu'un mot par ligne ?
0
Braveorc Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Le nombre de mots total ayant cette longueur de lettres. Par exemple 240 mots comptent 9 lettres de long.
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
essayer ça, les résultats ne sont pas triés
awk 'BEGIN {RS="[ \n]+"; print "Taille-----NBRE de mots"} {t[length()]++} END {for (n in t)printf "%-3d %s %s\n", n, "-------", t[n]}' fichier
0
Braveorc Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup, ca fonctionne, et je fait trier le tout en ajoutant | sort -n
0