Unix - Ayuda Script Awk !

   
Vista:

Ayuda Script Awk !

Publicado por Carlos (1 intervención) el 10/01/2009 20:37:14
Hola,

Tengo el siguiente archivo plano con un intervalo de 15 minutos, cada registro con 7 campos (Fecha, Hora, Precio de apertura, Precio Maximo, Precio Bajo, Precio de Cierre y Volumen de Operaciones). Ejemplo:

01/06/2009 14:00:000 930.000 934.500 927.000 933.250 80485
01/06/2009 14:15:000 933.250 936.500 933.000 935.250 57451
01/06/2009 14:30:000 935.250 937.250 934.500 937.000 60596
01/06/2009 14:45:000 936.750 939.500 936.750 939.250 50093
01/06/2009 15:00:000 939.250 939.750 932.750 934.500 61821
01/06/2009 15:15:000 934.500 935.500 928.500 930.250 72268
01/06/2009 15:30:000 930.250 933.000 926.500 931.750 115550
01/06/2009 15:45:000 931.750 933.000 929.750 931.750 103900
01/06/2009 16:00:000 931.750 933.500 930.000 930.250 64478

Necesito consolidar por cada 5 registros (hora y media) un nuevo registro que contenga los siguientes campos: Fecha, Hora del primer registro, Precio de apertura del primer registro, Precio Maximo (el mayor entre las 14:00 y las 15:30), Precio Minimo (el menor entre las 14:00 y las 15:30), Precio de cierre el valor de cierre del 5 regitro o el de las 15:30, Volumen de operaciones (Suma del volumen desde las 14:00 a las 15:30). El archivo puede tener varios dias (cada dia 26 registros)

Me gustaria que el script preguntara el intervalo a procesar (4, 5 o 6 registros consecutivos por cada dia)

Al generar el archivo plano este va a estar separado por comas (,) o tab.

Sus comentarios y ayuda son bienvenidos.

De antemano gracias por la atencion prestada.

Saludos,

Carlos Sierra
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda Script Awk !

Publicado por Ponte_a_estudiar (1 intervención) el 11/01/2009 05:47:25
REGISTROS=wc -l archivo_plano.txt
#Como quieres tratar el archivo por el principio ó por el final.
#si quieres consolidar por 5 registros desde el principio.

CORTAR=$REGISTROS

while (CORTAR > 0)
do
head -5 archivo_plano.txt > consolidar.txt
CORTAR=REGISTROS - 5
tail -$CORTAR >archivo_plano.txt

#Aqui va el codigo de AWK
#Te envio unos enlaces leelos
#Fecha, Hora del primer registro, Precio de apertura del primer registro
# - Lo guardas en la sección BEGIN
#Precio Maximo (el mayor entre las 14:00 y las 15:30),
# - Con un if else
#Precio Minimo (el menor entre las 14:00 y las 15:30)
# -Con un if else
#Precio de cierre el valor de cierre del 5 regitro o el de las 15:30
# - Con ayuda de if y NR
#Volumen de operaciones (Suma del volumen desde las 14:00 a las 15:30).
#Una simple suma
done

Me gustaria que el script preguntara el intervalo a procesar (4, 5 o 6 registros consecutivos por cada dia)
Sustituye en el head -5, el 5 por una variable

Al generar el archivo plano este va a estar separado por comas (,) o tab.
Ere flojo o no sabes nada de Unix? Una vez que tengas tus registros de interes,
echo $VAR1","$VAR2","$VAR3","$VAR4","$VAR5>>lista.txt

http://www.gnu.org/software/gawk/manual/gawk.pdf

http://www.opengroup.org/onlinepubs/009695399/utilities/awk.html

http://people.cs.uu.nl/piet/docs/nawk/nawk_toc.html

http://www.disc.ua.es/~gil/awk.txt

http://www.math.utah.edu/docs/info/gawk_toc.html

http://www.grymoire.com/Unix/Awk.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar