Recherche de site Web

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