Amusez-vous dans le terminal Linux - Jouez avec le nombre de mots et de caractères
La ligne de commande Linux est très amusante et de nombreuses tâches fastidieuses peuvent être effectuées très facilement mais avec perfection. Jouer avec les mots et les caractères, leur fréquence dans un fichier texte, etc., c'est ce que nous allons voir dans cet article.
La seule commande qui nous vient à l'esprit pour peaufiner la ligne de commande Linux afin de manipuler les mots et les caractères d'un fichier texte est la commande wc.
Une commande « wc » qui signifie nombre de mots est capable d'imprimer le nombre de nouvelles lignes, de mots et d'octets à partir d'un fichier texte.
Pour travailler avec les petits scripts d’analyse de fichier texte, nous devons disposer d’un fichier texte. Pour maintenir l'uniformité, nous créons un fichier texte avec la sortie de la commande man, comme décrit ci-dessous.
man man > man.txt
La commande ci-dessus crée un fichier texte « man.txt » avec le contenu de la « page de manuel » pour la commande « man ».
Nous souhaitons vérifier les mots les plus courants dans le « Fichier texte » créé ci-dessus en exécutant le script ci-dessous.
cat man.txt | tr ' ' '2' | tr '[:upper:]' '[:lower:]' | tr -d '[:punct:]' | grep -v '[^a-z]' | sort | uniq -c | sort -rn | head
Exemple de sortie
7557
262 the
163 to
112 is
112 a
78 of
78 manual
76 and
64 if
63 be
Le script simple d'une seule ligne ci-dessus montre les dix mots apparaissant le plus fréquemment et leur fréquence d'apparition dans le fichier texte.
Que diriez-vous de décomposer un mot en individu à l'aide de la commande suivante.
echo 'tecmint team' | fold -w1
Exemple de sortie
t
e
c
m
i
n
t
t
e
a
m
Remarque : Ici, « -w1 » correspond à la largeur.
Nous allons maintenant décomposer chaque mot d'un fichier texte, trier le résultat et obtenir le résultat souhaité avec la fréquence des dix caractères les plus fréquents.
fold -w1 < man.txt | sort | uniq -c | sort -rn | head
Exemple de sortie
8579
2413 e
1987 a
1875 t
1644 i
1553 n
1522 o
1514 s
1224 r
1021 l
Que diriez-vous d'obtenir les caractères les plus fréquents dans le fichier texte avec des majuscules et des minuscules différemment ainsi que leur fréquence d'apparition.
fold -w1 < man.txt | sort | tr '[:lower:]' '[:upper:]' | uniq -c | sort -rn | head -20
Exemple de sortie
11636
2504 E
2079 A
2005 T
1729 I
1645 N
1632 S
1580 o
1269 R
1055 L
836 H
791 P
766 D
753 C
725 M
690 U
605 F
504 G
352 Y
344 .
Vérifiez le résultat ci-dessus, où le signe de ponctuation est inclus. Supprimons la ponctuation, avec la commande 'tr'. On y va:
fold -w1 < man.txt | tr '[:lower:]' '[:upper:]' | sort | tr -d '[:punct:]' | uniq -c | sort -rn | head -20
Exemple de sortie
11636
2504 E
2079 A
2005 T
1729 I
1645 N
1632 S
1580 O
1550
1269 R
1055 L
836 H
791 P
766 D
753 C
725 M
690 U
605 F
504 G
352 Y
Maintenant, j'ai trois fichiers texte, exécutons le script ci-dessus pour voir le résultat.
cat *.txt | fold -w1 | tr '[:lower:]' '[:upper:]' | sort | tr -d '[:punct:]' | uniq -c | sort -rn | head -8
Exemple de sortie
11636
2504 E
2079 A
2005 T
1729 I
1645 N
1632 S
1580 O
Ensuite, nous générerons ces lettres peu fréquentes qui comptent au moins dix lettres. Voici le script simple.
cat man.txt | tr '' '2' | tr '[:upper:]' '[:lower:]' | tr -d '[:punct:]' | tr -d '[0-9]' | sort | uniq -c | sort -n | grep -E '..................' | head
Exemple de sortie
1 ──────────────────────────────────────────
1 a all
1 abc any or all arguments within are optional
1 able see setlocale for precise details
1 ab options delimited by cannot be used together
1 achieved by using the less environment variable
1 a child process returned a nonzero exit status
1 act as if this option was supplied using the name as a filename
1 activate local mode format and display local manual files
1 acute accent
Remarque : de plus en plus de points dans le script ci-dessus jusqu'à ce que tous les résultats soient générés. Nous pouvons utiliser .{10} pour obtenir dix correspondances de caractères.
Ces scripts simples nous font également connaître les mots et les caractères les plus fréquents en anglais.
C'est tout pour le moment. Je serai de nouveau ici avec un autre sujet intéressant et décalé qui mérite d’être connu, que vous adorerez lire. N'oubliez pas de nous faire part de vos précieux commentaires dans la section commentaires ci-dessous.
Lire aussi : 20 commandes amusantes de Linux