¡Hola, perleros!
Ayúdenme, por favor. Tengo un archivo.txt que contiene las siguientes columnas:
año, mes, día, hora, velocidad, y dirección de viento. A continuación muestro un extracto del archivo:
Using text Syntax Highlighting
2013 1 1 0 1.0 76
2013 1 1 1 1.0 26
2013 1 1 2 0.7 37
2013 1 1 3 0.3 76
2013 1 1 4 0.6 59
2013 1 1 5 0.6 65
2013 1 1 6 0.5 81
2013 1 1 7 0.6 58
2013 1 1 8 0.5 38
2013 1 1 9 1.2 56
2013 1 1 10 1.0 48
2013 1 1 11 0.9 33
2013 1 1 12 1.3 26
2013 1 1 13 1.3 7
2013 1 1 14 1.2 221
. . . . . .
. . . . . .
. . . . . .
2013 12 31 15 2.2 250
2013 12 31 14 nan nan
2013 12 31 15 nan nan
2013 12 31 16 nan nan
2013 12 31 17 nan nan
2013 12 31 18 nan nan
2013 12 31 19 nan nan
2013 12 31 20 nan nan
2013 12 31 21 nan nan
2013 12 31 22 nan nan
2013 12 31 23 nan nan
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Los "nan" significa que no hay datos.
Lo que quiero es imprimir la primera y última fecha del archivo, es decir:
Using text Syntax Highlighting
2013 01 01 00
2013 12 31 23
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
pero si la columna 5 tiene un "nan", imprimir la fecha antes del "nan":
Using text Syntax Highlighting
2013 01 01 00
2013 12 31 15
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Adjunto mi código.
Using perl Syntax Highlighting
#!/usr/bin/perl -w
use warnings;
use strict;
open IN, "<datos.txt";
my @array = <IN>;
next if $array[5] eq "nan";
close IN;
my $first = shift (@array);
my $last = pop (@array);
print "first: $first";
print "last: $last";
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
Me imprime la primera y última fecha, pero no toma en cuenta si la columna 5 tiene "nan". Además quiero que se impriman solo las primera cuatro columnas (
año, mes, día y hora).
Gracias por su ayuda