#!/usr/bin/perl -w use strict; # Recibo los parametros de la linea de comando e inicializo # las variables generales if(!$ARGV[0] || !$ARGV[1]) { print "No me pasaste los parametros adecuados\nuso\nweb020.pl origen destino"; exit; } my $origen=$ARGV[0]; my $destino=$ARGV[1]; my $arch_salida="$destino/web020"; my $arch_entrada="$origen/web020"; my $linea; my @datos_linea_anterior; my $contador; # Archivos de entrada y salida open arch_ent, "<$arch_entrada"; open arch_sal, ">$arch_salida"; # Leo el encabezado $linea=; # Grabo el encabezado en el archivo de salida print arch_sal $linea; my @linea_anterior=(0,0,'nada',0); my @campos; # Leo la cantidad de lineas del archivo de entrada my $aux; $aux=`wc -l $arch_entrada`; ($aux)=$aux=~/\s(\d*)\s/; # Bucle que recorre el archivo de entrada linea por linea for ($contador = $aux ;$contador > 0 ; $contador --) { $linea= unless ($contador == 1); @campos=split(",",$linea); if( $linea_anterior[0] eq $campos[0] and $linea_anterior[1] eq $campos[1] and $linea_anterior[2] eq $campos[2] and $linea_anterior[3] eq $campos[3]) { my $dias; $dias=0; foreach my $item (1..31) { if( $linea_anterior[3+$item] ne "00" or $campos[3+$item] ne "00") { $campos[3+$item]="01"; $dias++; } } $campos[35]=$dias; }else { if( $linea_anterior[0] and $linea_anterior[1] and $linea_anterior[2]) { print arch_sal $linea_anterior[$_]."," foreach (0..35); print arch_sal "\n"; }else { if($contador < $aux) { my $linea_archivo; $linea_archivo = $aux - $contador + 1; print "Error en la linea ".$linea_archivo.": "; print $linea_anterior[$_]."," foreach (0..35); print "\n"; } } } @linea_anterior=@campos; } print arch_sal $linea_anterior[$_]."," foreach (0..35); print arch_sal "\n"; close arch_ent; close arch_sal;