Ricerca nel sito web

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