Script Bash pour trouver la fréquence de chaque lettre dans un fichier
J'essaie de trouver la fréquence d'apparition de chaque lettre dans l'alphabet anglais dans un fichier d'entrée. Comment puis-je faire dans un script bash?
- Pourquoi êtes-vous à l'aide de bash pour cela?
- Trouvé cette programmation est question quelque part!! Je suppose que perl serait la meilleure solution, n'est-ce pas?
Vous devez vous connecter pour publier un commentaire.
Juste une commande awk
si vous voulez insensibles à la casse, ajouter
tolower()
et si vous ne souhaitez que des personnages, des
et si vous voulez des chiffres, changement
/[a-zA-Z]/
à/[0-9]/
si vous ne voulez pas montrer unicode, ne
export LC_ALL=C
export LC_ALL=C
.Ma solution à l'aide
grep
,sort
etuniq
.Ignorer la casse:
wc -c file
).Une solution avec
sed
,sort
etuniq
:Ce compte tous les personnages, pas seulement des lettres. Vous pouvez filtrer avec:
Si vous souhaitez prendre en compte les majuscules et les minuscules comme même, il suffit d'ajouter une traduction:
wc
,cut
,dc
,tee
et d'autres commandes, mais il serait plus à jongler avec des assiettes qu'un maintenable travail. Je pense que l'ajout de plusieurs fonctionnalités serait plus facile avec un script perl.Voici une suggestion:
Similaire à mouviciel la réponse ci-dessus, mais plus générique pour Bourne et Korn coquillages utilisés sur les systèmes BSD, lorsque vous n'avez pas de GNU sed, qui prend en charge \n dans un remplacement, vous pouvez d'échappement d'un retour à la ligne:
ou pour éviter le visuel divisé sur l'écran, insérez un littéral de saut de ligne par type CTRL+V CTRL+J