Campos repetidos

Victor Ramon Aguilar Ocampo aguilar@servidor.unam.mx
Tue, 10 Mar 1998 10:52:58 -0600 (CST)


Aqui va una solucion !

El contenido del archivo original, a ser procesado:


AAPG BULL::0149-1423::ENERGY & FUELS
AAPG BULL::0149-1423::ENGINEERING, PETROLEUM
AAPG BULL::0149-1423::GEOSCIENCES
AAPG BULL::0149-1423::XXXX
AAPG BULL::0149-1423::YYYY
ACI MATER J::0889-325X::CONSTRUCTION & BUILDING TECHNOLOGY
ACI MATER J::0889-325X::MATERIALS SCIENCE
ACI MATER J::0889-325X::SCIENCE
ACI MATER J::0889-325X::DOS
ACI MATER J::0889-325X::TRES


El programa que filtra campos repetidos:

#!/opt/leng/perl/bin/perl
 
open(S,"nada");
open(D,">nada.out");
$conta=0;
while(<S>) {
 
chop($linea=$_);
$conta++;
 
($uno,$dos,$tres)=split(/::/,$linea);
# se trata de una nueva linea donde el campo no se repite mas ???
# entonces imprime los tres campos
# Si no es asi, entonces solo imprime el tercero.
 
if($antes ne $uno) {
        print D "\n$uno\:\:$dos\:\:%$tres";
}
else{   
                print D "%$tres";
}
#Conserva el campo de la linea anterior
$antes=$uno;
 
}
close(S);
close(D);


Y el archivo que se obtiene como saldia despues del programa:

AAPG BULL::0149-1423::%ENERGY & FUELS%ENGINEERING, PETROLEUM%GEOSCIENCES%XXXX%YYYY
ACI MATER J::0889-325X::%CONSTRUCTION & BUILDING TECHNOLOGY%MATERIALS SCIENCE%SCIENCE%DOS%TRES

Saludos.


----------------------------------------------------------------
	Direccion General de Servicios de Computo Academico
                  Academic Computing Services      
	    UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO

   Victor Ramon Aguilar Ocampo   <aguilar@servidor.unam.mx>

   " Solo tienes dos cosas en tu hacer, las Razones y 
     los Resultados. Las Razones no cuentan  ".

----------------------------------------------------------------