Sustitucion de texto
Roberto Jimeno
jimeno@pc6.politicas.unam.mx
Wed, 26 Nov 1997 11:37:38 -0600
>...
> 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
>...
> ?Como le hago para que luego del @080 ponga @080 y luego del @090 ponga
> @090 y no @080??
>...
Probablemente alguna de las (al menos) dos propuestas que
recibiste deben ayudarte y quizá una mezcla de ellas sea la solución a
tu problema; sin embargo, en mi opinión "el problema" no es falta de
pericia con perl, sino un acercamiento un poco inadecuado al problema.
Probablemente lo que algunos otros programadores de unix
harían sería: En vez de tratar de escribir un super algoritmo capaz de
hacer exactamente lo que quieres, escribir un pequeño conjunto de
rutinitas que hagan más o menos lo que quieres, de modo que (por
ejemplo) un primer programita simplemente separe el marcador (ese que
comienza con arroba y está seguido de cuatro dígitos al principio de
una linea) dejandolo solo en una linea. Despues otro que ponga en
lineas separadas reenglones con tokens separados por ", ", y así
sucesivamente, de modo que despues puedas ir "filtrando" tu archivo de
entrada hasta que te quede exactamente lo que buscabas.
Una vez que tengas eso hecho, quizá te interese tomar dos de
los programas-filtro y mezclarlos en uno solo que sea más eficiente;
pero eso solo será interesante en caso de que te busques eficiencia en
el desempeño, y asi contunuar mezclando los filtros que resten, de
modo que al final tengas un solo programa muy eficiente.
[Chale, que mal redacto. Bueno, será mejor que el siguiente
sea un buen parrafo final escrito de manera clare y concisa, si no
quiero confundir más a los lectores ;-) ]
Un poco de esta "filosofía" de programación viene explicada (y
ejemplificada) en "El Entorno de Programación UNIX" y en "The Elements
of Programming Style" (Kernighan & Pike, Prentice Hall y Kernighan
Plauger, McGraw-Hill respectivamente). Ambas son buenas (aunque
viejas) lecturas.
Suerte.
--
-------------------------------------------------------------------------------
Roberto Jimeno. From The Cher-Speak Dictionary for the totally clueless:
ran.dom (RAN DM), adj. 1. mediocre. 2. whack (sort of)