Divertimento nel terminale Linux: gioca con il conteggio delle parole e dei caratteri
La riga di comando di Linux è molto divertente e molti compiti noiosi possono essere eseguiti molto facilmente ma con perfezione. Giocare con parole e caratteri, la loro frequenza in un file di testo, ecc. è ciò che vedremo in questo articolo.
L'unico comando che ci viene in mente per modificare la riga di comando di Linux per manipolare parole e caratteri da un file di testo è il comando wc.
Un comando "wc" che sta per conteggio parole è in grado di stampare il conteggio di nuove righe, parole e byte da un file di testo.
Per lavorare con i piccoli script per analizzare il file di testo, dobbiamo avere un file di testo. Per mantenere l'uniformità, stiamo creando un file di testo con l'output del comando man, come descritto di seguito.
man man > man.txt
Il comando precedente crea un file di testo "man.txt" con il contenuto della "pagina manuale" per il comando "man".
Vogliamo controllare le parole più comuni nel "File di testo" creato sopra eseguendo lo script seguente.
cat man.txt | tr ' ' '2' | tr '[:upper:]' '[:lower:]' | tr -d '[:punct:]' | grep -v '[^a-z]' | sort | uniq -c | sort -rn | head
Uscita del campione
7557
262 the
163 to
112 is
112 a
78 of
78 manual
76 and
64 if
63 be
Il semplice script di una riga sopra mostra le dieci parole che appaiono più frequentemente e la loro frequenza di apparizione, nel file di testo.
Che ne dici di scomporre una parola in individui usando il seguente comando.
echo 'tecmint team' | fold -w1
Uscita del campione
t
e
c
m
i
n
t
t
e
a
m
Nota: qui, "-w1" indica la larghezza.
Ora scomporremo ogni singola parola in un file di testo, ordineremo il risultato e otterremo l'output desiderato con la frequenza dei dieci caratteri più frequenti.
fold -w1 < man.txt | sort | uniq -c | sort -rn | head
Uscita del campione
8579
2413 e
1987 a
1875 t
1644 i
1553 n
1522 o
1514 s
1224 r
1021 l
Che ne dici di ottenere i caratteri più frequenti nel file di testo con lettere maiuscole e minuscole in modo diverso insieme alla loro frequenza di occorrenza.
fold -w1 < man.txt | sort | tr '[:lower:]' '[:upper:]' | uniq -c | sort -rn | head -20
Uscita del campione
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 .
Controlla l'output sopra, dove è incluso il segno di punteggiatura. Eliminiamo la punteggiatura con il comando "tr". Eccoci qui:
fold -w1 < man.txt | tr '[:lower:]' '[:upper:]' | sort | tr -d '[:punct:]' | uniq -c | sort -rn | head -20
Uscita del campione
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
Ora ho tre file di testo, eseguiamo lo script di copertina sopra per vedere l'output.
cat *.txt | fold -w1 | tr '[:lower:]' '[:upper:]' | sort | tr -d '[:punct:]' | uniq -c | sort -rn | head -8
Uscita del campione
11636
2504 E
2079 A
2005 T
1729 I
1645 N
1632 S
1580 O
Successivamente genereremo quelle lettere poco frequenti lunghe almeno dieci lettere. Ecco il semplice script.
cat man.txt | tr '' '2' | tr '[:upper:]' '[:lower:]' | tr -d '[:punct:]' | tr -d '[0-9]' | sort | uniq -c | sort -n | grep -E '..................' | head
Uscita del campione
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
Nota: sempre più punti nello script precedente finché non vengono generati tutti i risultati. Possiamo usare .{10} per ottenere corrispondenze di dieci caratteri.
Questi semplici script ci permettono anche di conoscere le parole e i caratteri più frequenti in inglese.
È tutto per ora. Sarò di nuovo qui con un altro argomento interessante e fuori dal comune che vale la pena conoscere, che voi adorerete leggere. Non dimenticare di fornirci il tuo prezioso feedback nella sezione commenti, di seguito.
Leggi anche: 20 divertenti comandi di Linux