Website-Suche

Spaß im Linux-Terminal - Spielen Sie mit Wort- und Zeichenzahlen


Die Linux-Befehlszeile hat viel Spaß um sich herum und viele mühsame Aufgaben können sehr einfach und dennoch mit Perfektion ausgeführt werden. Das Spiel mit Wörtern und Zeichen, ihrer Häufigkeit in einer Textdatei usw. ist das, was wir in diesem Artikel sehen werden.

Der einzige Befehl, der uns in den Sinn kommt, um die Linux-Befehlszeile zu optimieren, um Wörter und Zeichen aus einer Textdatei zu manipulieren, ist der Befehl wc.

Ein 'wc'-Befehl, der für Word Count steht, ist in der Lage, Zeilenumbrüche, Wort- und Bytezahlen aus einer Textdatei zu drucken.

Um mit den kleinen Skripten zur Analyse von Textdateien arbeiten zu können, benötigen wir eine Textdatei. Um die Einheitlichkeit zu wahren, erstellen wir eine Textdatei mit der Ausgabe des Befehls man, wie unten beschrieben.

$ man man > man.txt

Der obige Befehl erstellt eine Textdatei 'man.txt' mit dem Inhalt von 'manual page' für den Befehl 'man'.

Wir möchten die gebräuchlichsten Wörter in der oben erstellten 'Textdatei' überprüfen, indem wir das folgende Skript ausführen.

$ cat man.txt | tr ' '  '2' | tr '[:upper:]' '[:lower:]' | tr -d '[:punct:]' | grep -v '[^a-z]' | sort | uniq -c | sort -rn | head
Beispiel-Ausgabe
7557 
262 the 
163 to 
112 is 
112 a 
78 of 
78 manual 
76 and 
64 if 
63 be

Das obige einzeilige einfache Skript zeigt die zehn am häufigsten vorkommenden Wörter und ihre Häufigkeit des Auftretens in der Textdatei.

Wie wäre es, wenn Sie ein Wort mit dem folgenden Befehl in ein Individuum zerlegen?

$ echo 'tecmint team' | fold -w1
Beispiel-Ausgabe
t 
e 
c 
m 
i 
n 
t 
t 
e 
a 
m

Hinweis: Hier steht '-w1' für die Breite.

Jetzt werden wir jedes einzelne Wort in einer Textdatei aufschlüsseln, das Ergebnis sortieren und die gewünschte Ausgabe mit der Häufigkeit der zehn häufigsten Zeichen erhalten.

$ fold -w1 < man.txt | sort | uniq -c | sort -rn | head
Beispiel-Ausgabe
8579  
2413 e
1987 a
1875 t
1644 i
1553 n
1522 o
1514 s
1224 r
1021 l

Wie wäre es, wenn Sie die häufigsten Zeichen in der Textdatei mit Groß- und Kleinbuchstaben unterschiedlich zusammen mit ihrer Häufigkeit abrufen würden?

$ fold -w1 < man.txt | sort | tr '[:lower:]' '[:upper:]' | uniq -c | sort -rn | head -20
Beispiel-Ausgabe
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 .

Überprüfen Sie die obige Ausgabe, in der ein Satzzeichen enthalten ist. Lassen Sie uns die Interpunktion mit dem Befehl 'tr' entfernen. Los geht es:

$ fold -w1 < man.txt | tr '[:lower:]' '[:upper:]' | sort | tr -d '[:punct:]' | uniq -c | sort -rn | head -20
Beispiel-Ausgabe
  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

Jetzt habe ich drei Textdateien, lassen Sie uns das obige Einzeiler-Skript ausführen, um die Ausgabe zu sehen.

$ cat *.txt | fold -w1 | tr '[:lower:]' '[:upper:]' | sort | tr -d '[:punct:]' | uniq -c | sort -rn | head -8
Beispiel-Ausgabe
  11636  
   2504 E 
   2079 A 
   2005 T 
   1729 I 
   1645 N 
   1632 S 
   1580 O

Als Nächstes generieren wir die seltenen Buchstaben, die mindestens zehn Buchstaben lang sind. Hier ist das einfache Skript.

$ cat man.txt | tr '' '2' | tr '[:upper:]' '[:lower:]' | tr -d '[:punct:]' | tr -d '[0-9]' | sort | uniq -c | sort -n |  grep -E '..................' | head
Beispiel-Ausgabe
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

Hinweis: Je mehr Punkte im obigen Skript angezeigt werden, bis alle Ergebnisse generiert sind. Wir können . {10}, um zehn Zeichenübereinstimmungen zu erhalten.

Diese einfachen Skripte machen uns auch die am häufigsten vorkommenden Wörter und Zeichen im Englischen bekannt.

Das war's fürs Erste. Ich bin wieder hier mit einem weiteren interessanten und schrägen wissenswerten Thema, das ihr gerne lesen werdet. Vergessen Sie nicht, uns Ihr wertvolles Feedback im Kommentarbereich unten mitzuteilen.

Lesen Sie auch: 20 lustige Befehle von Linux

Verwandte Artikel: