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 | headBeispiel-Ausgabe
7557
262 the
163 to
112 is
112 a
78 of
78 manual
76 and
64 if
63 beDas 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 -w1Beispiel-Ausgabe
t
e
c
m
i
n
t
t
e
a
mHinweis: 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 | headBeispiel-Ausgabe
8579
2413 e
1987 a
1875 t
1644 i
1553 n
1522 o
1514 s
1224 r
1021 lWie 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 -20Beispiel-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 -20Beispiel-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 YJetzt 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 -8Beispiel-Ausgabe
11636
2504 E
2079 A
2005 T
1729 I
1645 N
1632 S
1580 OAls 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 '..................' | headBeispiel-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
