Este programa imprime la lista de todas las palabras diferentes usadas en un texto, junto con la frecuencia de aparición de cada una. Para simplificar el programa se asume que no hay signos de puntuación, y las palabras están separadas por espacio en blanco o saltos de línea. Esto significa que cada palabra es un campo de la línea de entrada.
Código del programa (vocabulario.awk):
1 2 3 4 5 6 7 8 9 10 11 |
{ for (k=1; k<=NF; k++) { cuenta[$k]++ } } END { for (pal in cuenta) { print pal, cuenta[pal] } } |
Ejemplo de texto de entrada (texto.txt):
1 2 3 4 5 6 7 8 |
Este programa imprime la lista de todas las palabras diferentes usadas en un texto, junto con la frecuencia de aparición de cada una. Para simplificar el programa se asume que no hay signos de puntuación, y las palabras están separadas por espacio en blanco o saltos de línea. Esto significa que cada palabra es un campo de la línea de entrada. |
Orden de ejecución :
1 |
awk -f vocabulario.awk texto.txt |
Resultados:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
entrada. 1 Esto 1 no 1 frecuencia 1 palabra 1 el 1 con 1 palabras 2 todas 1 lista 1 imprime 1 programa 2 línea 1 Para 1 campo 1 que 2 ... etc. ... |
Observaciones:
1.- La primera cláusula del programa tiene el patrón omitido. Se aplica a todas las líneas del texto de entrada.
2.- Las palabras en mayúsculas y en minúsculas se tratan como diferentes. Este es el comportamiento por defecto de AWK.
3.- Los resultados no aparecen en orden alfabético (ni en ningún otro orden determinado). Las tablas suelen implementarse internamente como tablas «hash», y sus elementos se recorren en el orden que haya decidido quien construyó el intérprete.