¿Hola cómo extraigo esto?

Hola, tengo el siguiente problems.
Tengo un archivo de salida el cual contiene bloques de 8 lineas cada uno. Lo que quiero es que el script me lea un bloque de 6 renglones y me lo salve a un archivo llamada por ej. 1.dat, que lea el 2 bloque y me lo salve a un archivo 2.dat y así sucesivamente.
Ejemplo.
Tengo un archivo de entrada con 4 bloques de 8 linea cada uno (32 lineas en total), entonces quiero que me lea
el bloque 1 y me lo salve a un archivo llamado 1.dat, el bloque 2 al archivo 2.dat, etc.
Gracias de antemano por su ayuda.
******************
47 0.266E+01 0.229E+01 0.384E+01
47 0.383E+01 0.301E+01 0.264E+01
47 0.266E+01 0.408E+01 0.357E+01
47 0.146E+01 0.301E+01 0.266E+01
47 0.267E+01 0.409E+01 0.174E+01
47 0.172E+01 0.123E+01 0.264E+01
47 0.264E+01 0.227E+01 0.147E+01
47 0.355E+01 0.123E+01 0.264E+01
47 0.266E+01 0.228E+01 0.393E+01
47 0.393E+01 0.302E+01 0.263E+01
47 0.267E+01 0.416E+01 0.364E+01
47 0.137E+01 0.302E+01 0.266E+01
47 0.268E+01 0.418E+01 0.167E+01
47 0.163E+01 0.117E+01 0.264E+01
47 0.263E+01 0.224E+01 0.138E+01
47 0.361E+01 0.116E+01 0.264E+01
47 0.267E+01 0.226E+01 0.409E+01
47 0.408E+01 0.305E+01 0.263E+01
47 0.267E+01 0.428E+01 0.375E+01
47 0.124E+01 0.304E+01 0.267E+01
47 0.270E+01 0.431E+01 0.157E+01
47 0.152E+01 0.107E+01 0.265E+01
47 0.262E+01 0.220E+01 0.123E+01
47 0.371E+01 0.105E+01 0.265E+01
47 0.267E+01 0.224E+01 0.426E+01
47 0.427E+01 0.308E+01 0.262E+01
47 0.267E+01 0.441E+01 0.388E+01
47 0.108E+01 0.308E+01 0.267E+01
47 0.272E+01 0.445E+01 0.146E+01
47 0.139E+01 0.940E+00 0.266E+01
47 0.262E+01 0.216E+01 0.107E+01
47 0.382E+01 0.911E+00 0.265E+01
***********

1 respuesta

Respuesta
1
#!/usr/bin/perl
open ENTRADA,"<fichero.txt" or die;
my $numero = 0;
while( not eof ENTRADA ) {
$numero++;
print "$numero\n";
open SALIDA,">$numero.dat" or die;
for($j=0;$j<8;$j++) {
my $linea = <ENTRADA>;
print SALIDA $linea;
}
close SALIDA;
}
close ENTRADA;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas