Red de blogs

TuxUbuntu.com

Compartamos conocimiento

Archive for June, 2008

Jun
17

El comando awk

Entrada por TuxUbuntu en Comandos

AWK es un lenguaje de programación diseñado para procesar datos basados en texto, ya sean ficheros o flujos de datos. El nombre AWK deriva de los apellidos de los autores: Alfred Aho, Peter Weinberger, y Brian Kernighan.

awk, cuando está escrito todo en minúsculas, hace referencia al programa de Unix que interpreta programas escritos en el lenguaje de programación AWK.

AWK es ejemplo de un lenguaje de programación que usa ampliamente el tipo de datos de listas asociativas (es decir, listas indexadas por cadenas clave), y expresiones regulares. El poder, brevedad y limitaciones de los programas de AWK y los guiones de sed inspiraron a Larry Wall a escribir Perl. Debido a su densa notación, todos estos lenguajes son frecuentemente usados para escribir programas de una linea.

Veamos un ejemplo practico antes de pasar a una conotacion mas amplia del lenguaje AWK. Supongamos que tenemos un archivo de texto como el que sigue:

Mario   DF             Enero       Ingeniero   26
Jorge   Buenos Aires   Diciembre   Derecho     32
Luis    Caracas        Agosto      Medico      27
Pedro   Copa Cabana    Marzo       Dentista    40

pero solo deseamos seleccionar el nombre y edad, entonces solo debemos escribir en una Terminal

awk '{print $1,$5}'  > data.txt

y nos creara un archivo data.txt como el que sigue

Mario   26
Jorge   32
Luis    27
Pedro   40

Ahora bien si lo que deseamos es ordenar las columnas del archivo de otro modo es tan simple como hacer, para el archivo original

awk '{print $1,$5,$2,$4,$3}'  > data.txt

y nos creara un archivo data.txt como el que sigue

Mario   26   DF             Ingeniero   Enero
Jorge   32   Buenos Aires   Derecho     Diciembre
Luis    27   Caracas        Medico      Agosto
Pedro   40   Copa Cabana    Dentista    Marzo

Si quieren conocer un poco mas solo sigan leyendo.

Leer el resto de la entrada »