El lenguaje de programación AWK

AWK es un lenguaje de programación que hace posible, con programas de una o dos líneas, la realización de tareas mecánicas de manipulación de datos cambiar de formatos, comprobar de validez de los archivos, encontrar items con ciertas propiedades, imprimir reportes, etc.
AWK es un lenguaje muy versátil, se han usado programas AWK para:

AWK maneja texto con la facilidad que la mayoría de los lenguajes de programación manejan números. Un programa AWK es una secuencia de patrones y acciones que indican que patrón buscar en los datos de entrada y qué hacer cuando el patrón se encuentra.
Un patrón puede seleccionar líneas por combinaciones de regex y operaciones de comparación de strings, números, campos, variables y elementos de arrays. Las acciones pueden realizar procesamiento arbitrario sobre las líneas seleccionadas. El lenguaje con el cuál se indican las acciones se parece a C, pero sin declaraciones. Los programas awk son usualmente mucho más pequeños de lo que serían en un lenguaje convencional dado que muchas de las operaciones que realiza son automáticas:

Evolución de AWK:

AWK fue originalmente diseñado e implementado por Alfred V. Aho, Peter J. Weinberger y Brian W. Kernighan en el año 1977. Fue en parte un experimento para ver como las herramientas grep y sed de Unix podrían ser generalizadas para manejar números tan bien como manejan texto. Dado que el lenguaje tuvo cierta adopción y los usuarios comenzaron a requerir ciertas características que no eran parte de la implementación original, 8 años después, en 1985 se hizo disponible una nueva versión. Las características más importantes de esta versión nueva fueron:
  • Permitir que el usuario defina sus propias funciones. 
  • Incorporación de regex dinámicas con funciones de pattern-matching y sustitución de texto.
  • Funciones y variables built-in.
  • Nuevos Operadores.
  • Acceso a argumentos de la línea de ocmandos. 
  • Mejora de los mensajes de error. 
Dado que AWK fue desarrollado bajo Unix, algunas de sus características reflejan capacidades que usualmente se encuentran solo allí. AWK obviamente no es perfecto, tiene irregularidades, omisiones, malas ideas y a veces es dolorosamente lento, pero a pesar de ello es un lenguaje rico, versátil y útil.

Esta entrada es parte de una traducción/apunte/resumen del libro, escrito por los autores de AWK, llamado The AWK Programming Language

Comentarios

Entradas populares de este blog

Introduccion a x86 ASM - Registros

JS: Triángulo de Pascal

Legacy Trash (II)