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 ".
----------------------------------------------------------------