Le but du script que je cherche est d'extraire le nombre de mots utilisant chaque lettre de l'alphabet de A à Z dans un fichier texte mis en paramètre $1.
en faite, j'ai retrouvé un code script mais ce dernier compte le nombre de mots sur chaque ligne. La voici ci-dessous:
Si vous pouvez bien m'aider à le modifier ou trouver carrément un autre code script pouvant faire celà.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 #!/bin/bash #On détruit la valeur de la variable i (en fait une suppression du contenu) quand cette dernière prendra les valeurs comprises entre A à Z for i in {A..Z} do unset ${i} done #On crée alors une boucle pour parcourir toutes les lignes contenues dans le fichier texte à analyser while read line #débuter le comptage de chaque lettre par ligne en commencant par zéro (0) do XX=${line//[^A-Z]/} i=0 while [[ i -lt ${#XX} ]] #Incrémenter le comptage tant que la valeur du comptage de chaque lettre est inférieure au nombre de lignes contenu dans le fichier do ((${XX:$i:1}+=1)) ((i+=1)) done done <$1 #On demande au script d'afficher, pour chaque lettre de l'alaphabet en commencant de A à Z (Tout en Majuscule), le nombre de fois que la lettre est affichée.(Les valeurs de A à Z seront données succesivement à la variable i) for i in {A..Z} do echo ${!i=0} "mots contiennent la lettre" $i "dans le fichier $1" done
Le script doit afficher de la façon suivante:
45 mots utilisent la lettre B
30 mots utilisent la lettre Z
29 mots utilisent la lettre A
.........
etc...
Dans l'ordre de la plus utilisée à la moins utilisée.
Partager