lunes, 13 de febrero de 2012

Tarea de AWK





¿Que es AWK?


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 o Plan 9 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 línea.



Presentación:










Codigo de BASH Llamando a AWK
echo "Escriba el Nombre del Archivo Fuente: ";
read file

chmod +x tornillos.awk


./tornillos.awk < $file > "Result_"$file

echo "Listo"



Codigo de AWK ejecutando instrucciones




#!/usr/bin/awk -f

BEGIN {
T1=0;
T2=0;
T3=0;
T4=0;
T5=0;
T6=0;

A_T1=0;
A_T2=0;
A_T3=0;
A_T4=0;
A_T5=0;
A_T6=0;
check=FALSE;

year=1900;
month=0;
}
{
c_year=substr($1, 7, 4);
c_month=substr($1, 4, 2);


if (c_month != month){

if(month != 0){
print "Mes:" month " |" T1 " |" T2 " |" T3 " |" T4 " |" T5 " |" T6;
}

month=c_month;
T1=0;
T2=0;
T3=0;
T4=0;
T5=0;
T6=0;
}

if (c_year != year){


A_B_TOTAL=A_T1+A_T2+A_T3+A_T4+A_T5+A_T6;




if(year != 1900){
print " ";
print "Tot(T):" year " |" A_T1 " |" A_T2 " |" A_T3 " |" A_T4 " |" A_T5 " |" A_T6;
print "Total de Gramos de Tornillos del Año " year " : " A_B_TOTAL;
}
print " "
print "--------------------------------------------------------------";
print "Año:" c_year " |T1 |T2 |T3 |T4 |T5 |T6";


year=c_year

A_T1=0
A_T2=0
A_T3=0
A_T4=0
A_T5=0
A_T6=0

}


T1=T1+$2
T2=T2+$3
T3=T3+$4
T4=T4+$5
T5=T5+$6
T6=T6+$7

A_T1=A_T1+$2
A_T2=A_T2+$3
A_T3=A_T3+$4
A_T4=A_T4+$5
A_T5=A_T5+$6
A_T6=A_T6+$7


}
END {

}

No hay comentarios:

Publicar un comentario