Diversión en la terminal de Linux: juega con palabras y recuentos de caracteres


La línea de comandos de Linux se divierte mucho y muchas tareas tediosas se pueden realizar con mucha facilidad y perfección. Jugar con palabras y caracteres, su frecuencia en un archivo de texto, etc. es lo que vamos a ver en este artículo.

El único comando que nos viene a la mente para modificar la línea de comandos de Linux para manipular palabras y caracteres de un archivo de texto es el comando wc.

Un comando "wc" que significa recuento de palabras es capaz de imprimir recuentos de líneas nuevas, palabras y bytes de un archivo de texto.

Para trabajar con los pequeños scripts para analizar el archivo de texto, debemos tener un archivo de texto. Para mantener la uniformidad, estamos creando un archivo de texto con la salida del comando man, como se describe a continuación.

$ man man > man.txt

El comando anterior crea un archivo de texto "man.txt" con el contenido de "página de manual" para el comando "man".

Queremos verificar las palabras más comunes, en el "Archivo de texto" creado anteriormente ejecutando el siguiente script.

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

La secuencia de comandos simple de una línea anterior muestra las diez palabras que aparecen con mayor frecuencia y su frecuencia de aparición, en el archivo de texto.

¿Qué tal dividir una palabra en un individuo usando el siguiente comando?

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

Nota: Aquí, "-w1" es para ancho.

Ahora desglosaremos cada palabra en un archivo de texto, ordenaremos el resultado y obtendremos el resultado deseado con la frecuencia de los diez caracteres más frecuentes.

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

¿Qué tal obtener los caracteres más frecuentes en el archivo de texto con mayúsculas y minúsculas de manera diferente junto con su frecuencia de aparición?

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

Compruebe la salida anterior, donde se incluye el signo de puntuación. Eliminemos la puntuación, con el comando "tr". Aquí vamos:

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

Ahora tengo tres archivos de texto, ejecutemos el script de línea anterior para ver el resultado.

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

A continuación, generaremos aquellas letras poco frecuentes que tengan al menos diez letras. Aquí está el guión simple.

$ cat man.txt | tr '' '2' | tr '[:upper:]' '[:lower:]' | tr -d '[:punct:]' | tr -d '[0-9]' | sort | uniq -c | sort -n |  grep -E '..................' | head
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: Más y más puntos en el script anterior hasta que se generen todos los resultados. Podemos usar. {10} para obtener diez coincidencias de caracteres.

Estos sencillos guiones, también nos hacen conocer las palabras y caracteres que aparecen con mayor frecuencia en inglés.

Eso es todo por ahora. Estaré aquí de nuevo con otro tema interesante y fuera de lo común que vale la pena conocer y que a ustedes les encantará leer. No olvide enviarnos sus valiosos comentarios en la sección de comentarios a continuación.

Lea también: 20 comandos divertidos de Linux