Perl - Pegar columnas en un archivo

   
Vista:

Pegar columnas en un archivo

Publicado por Dorian (1 intervención) el 10/11/2014 23:24:50
buenas tardes tengo tres archivos
archivo1.txt con
15/09/14
15/09/14
15/09/14
15/09/14
15/09/14
15/09/14

archivo2.txt con

01/09/14
01/09/14
01/09/14
01/09/14
01/09/14
01/09/14

archivo3.txt con esta info
15/09/14,11-37,01/09/14,HGS1224A,0G,71%,WGS
15/09/14,11-41,01/09/14,JAN2700A,0G,94%,EAN
15/09/14,11-43,01/09/14,KAN2701A,0G,100%,RAN
15/09/14,11-44,01/09/14,LAN2701B,0G,92%,UAN
15/09/14,11-46,01/09/14,YAN2708A,0G,88%,JAN

y deseo reemplazar la columna 1 del archivo3.txt con la columna del archivo2.txt y la columna 3 del archivo3.txt con la columna del archivo1.txt

alguna idea ?

saludos
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

Pegar columnas en un archivo

Publicado por Joaquin Ferrero (10 intervenciones) el 11/11/2014 11:03:44
Esta es una forma de hacerlo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/usr/bin/perl
use autodie;
 
## Abrimos los archivos
open my $ARCHIVO1, '<', 'archivo1.txt';
open my $ARCHIVO2, '<', 'archivo2.txt';
open my $ARCHIVO3, '<', 'archivo3.txt';
 
while (my $linea3 = <$ARCHIVO3>) {	# para todas las líneas del archivo 3
 
    my $linea1 = <$ARCHIVO1>;		# línea del archivo 1
    my $linea2 = <$ARCHIVO2>;		# línea del archivo 2
 
    chomp($linea1, $linea2, $linea3);	# quitamos finales de línea
 
    my @campos = split /[,]/, $linea3;	# partimos la línea 3
 
    $campos[0] = $linea2;		# cambios
    $campos[2] = $linea1;
 
    $linea3 = join ',' => @campos;	# recomponemos la línea
 
    print "$linea3\n";			# resultado
}
 
close $ARCHIVO1;
close $ARCHIVO2;
close $ARCHIVO3;

Saludos desde Perl en Español.
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