Sustitucion de texto
Adrian Galindo
agalindo@izquierdo.fmedic.unam.mx
Tue, 25 Nov 1997 18:32:00 -0600 (CST)
Hola lista. Ahora, despues de una semana de estar intentando, me
rindo. Ya le busque de mil maneras y no puedo.
Sucede que tengo un archivo como entrada con la siguiente forma:
@080aspartylglucosaminidase; lysosomal storage diseases;
malocclusion; dental arch; tooth|
@090FOLLOW-UP; ASPARTYLGLYCOSAMINURIA; GLYCOASPARAGINASE;
MACROGLOSSIA; MUTATIONS; FEATURES; DISORDER; DISEASE; FAMILY|
y necesito necesito que quede la salida con una sustitucion de cada punto
y coma (;) por la etiqueta del principio. Algo asi:
@080aspartylglucosaminidas
@080lysosomal storage disease
@080malocclusion
@080dental arch
...
El problema es que con el while (<ARCHIVO>) el programa lee el
archivo linea por linea y como le puse la condicion
if ($linea =~ /\@080/) {
sustituye los 80's
} elsif ($linea =~ /\@090) {
sustituye los 90's
}
entonces en las lineas que no empieza con la dichosa etiqueta no hace
nada. Entonces, donde tengo que meter el ciclo para que mientras no
encuentre a una linea con una etiqueta diferente, sustituya los ; por @080
Intente con banderas, prendiendola si encontraba la etiqueta, y
apagandola cuando encontrara el tubo del final del campo, pero no, me
regresa esto:
@080aspartylglucosaminidase
@080lysosomal storage diseases
@080malocclusion
@080dental arch
@080tooth|
@090FOLLOW-UP
@090ASPARTYLGLYCOSAMINURIA
@090GLYCOASPARAGINASE
@090MACROGLOSSIA
@080MUTATIONS
@080FEATURES
~~~ <---------asi no me sirve, debe ser @090
o sea, incluso en el @090, como la siguiente linea ya no tiene @090 pone
el @080... :~(
?Como le hago para que luego del @080 ponga @080 y luego del @090 ponga
@090 y no @080??
Espero haber podido expresar mi problema para que me puedan ayudar y
siculpen por el mensajote, pero trate de ser lo mas breve.
Salu2 y Gracias! :)
---------------------------
Adrian Galindo Hdez
Hemerobiblioteca J.J.Izquierdo
Facultad de Medicina, UNAM