¡Buenas!
Encantada de formar parte de este nuevo mundo que es para mi el lenguaje Perl. Llevo varios días leyendo y revisando en el foro por si encontraba la solución a mi problema, pero al final no es el resultado que quiero así que voy a explicarme lo mejor posible.
Tengo un fichero .txt bastante extenso (unas 100 000 líneas) con la estructura "código de números, nombre con letras", es decir:
Using text Syntax Highlighting
Codigo_Numeros_longitud_variable1,Nombres_longitud_variable1
Codigo_Numeros_longitud_variable2,Nombres_longitud_variable2
Codigo_Numeros_longitud_variable3,Nombres_longitud_variable3
Codigo_Numeros_longitud_variable3,Nombres_longitud_variable4
.....
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Necesito crear otro fichero .txt de la siguiente forma:
Using text Syntax Highlighting
Codigo_Numeros_longitud_variable1,Nombres_longitud_variable1,Codigo_Numeros_longitud_variable2,Nombres_longitud_variable2
Codigo_Numeros_longitud_variable3,Nombres_longitud_variable3,Codigo_Numeros_longitud_variable3,Nombres_longitud_variable4
.....
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Me refiero a que cada dos líneas del primer fichero se forme una sola línea separada por comas en el fichero de salida.
No sé si me he explicado bien...
He probado infinidad de opciones y todas, o me salen las comas donde no tocan o me lo pone todo en una sola línea o me lo separa en letras o simplemente me lo muestra tal cual el fichero de entrada... Me estoy volviendo loca
Pongo un par de ejemplos de lo que he probado y que no funciona:
Using perl Syntax Highlighting
use strict;
use autodie;
use warnings;
open my $fichero, '<prueba.txt' or die "ERROR: No puedo leer el fichero: $!\n";
open my $OTRO, ">otro.txt" or die "ERROR: No encuentro el fichero: $!\n";
while (my $linea = <$fichero>) {
chomp $linea;
push @array, $linea;
print $OTRO "$array[0]$array[1],$array[2]$array[3]\n";
}
close $fichero;
close $OTRO;
Coloreado en 0.003 segundos, usando
GeSHi 1.0.8.4
Otro ejemplo
Using perl Syntax Highlighting
use strict;
use autodie;
use warnings;
open FICHERO, "<prueba.txt" or die "ERROR: No encuentro el fichero prueba.txt\n";
open my $OTRO, ">otro.txt" or die "ERROR: No encuentro el fichero otro.txt\n";
@lineas = <FICHERO> or die "ERROR: No puedo leer el fichero\n";
close FICHERO or die "ERROR: No puedo cerrar el fichero\n";
foreach ( @lineas ) {
push @rray, [ split // ];
}
my $contador = 0;
for ( $j = 0; $j < @rray; $j++ ) {
for ( $i = 0; $i < @{$rray[$j]}; $i++ ) {
#print $OTRO $rray[$j][$i];
print $rray[$j][$i];
#print ",\n";
}
}
close $OTRO;
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
No sé, creo que estoy cerca de la solución, pero debo estar haciendo algo mal y no lo veo.
He abierto el hilo porque llevo toda la semana dándole vueltas. Si alguien me pudiera echar una mano estaría muy agradecida
Gracias de antemano.