[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]
[Hilos de Discusión] [Fecha] [Tema] [Autor]> > > Necesito procesar algunos documentos de texto (iso-8859-1) > > > con perl, pero ocasionalmente algunas palabras que comien- > > > zan en un renglón terminan el siguiente (como en estas lí- > > > neas). ¿Cómo le hago para quitar el guión y volver a te- > > > ner la palabra completa? > > > > A ver... Va al hilo, sin probar. Asumo que quieres procesar palabra por > > palabra y que el archivo completo cabe en memoria. Modificarlo para que > > vaya linea por linea debe ser trivial. > > Mmm. No estoy seguro que quepa en memoria, pero voy a probar. Bueno, si no cabe, las modificaciones son triviales... Cualquier cosa. > Hace > unos años utilicé un programa que se llamaba "cambios > consistentes" que permitía hace lo siguiente: > > nl ' ' > nl back # quita espacios al principio de la linea > ' ' nl > nl back # quita espacios al final de la linea > nl nl > nl back # quita líneas en blanco > > '-' nl > '' # quita el guión al final de la linea > # y lo pega con la siguiente > > En el peor de los casos, un programita en C puede hacer lo > anterior :-) Hombre, estas usando la herramienta equivocada! Quieres manejar patrones en el texto, usa Perl! Para cada linea que quieras revisar, seria algo asi: $line =~ s/(\s+$|^\s+)//g; next if $line eq ''; O sea: Si hay un caracter blanco (espacio, tabulador) o mas al final de la linea o al principio de la misma, substituyelos por una cadena vacia. Aplica este patron cuantas veces se pueda en la linea (para usar un solo patron para revisar principio y fin). Si la linea esta vacia, dale otra vuelta al ciclo y no continues procesandola. Pegale eso a lo que te mande ayer... ------------------------------------------------------------------- Gunnar Wolf gwolf en campus iztacala unam mx Universidad Nacional Autónoma de México, Campus Iztacala Jefatura de Sección de Desarrollo y Admon. de Sistemas en Red Area de Seguridad en Computo - DCI - DGSCA - UNAM ------------------------------------------------------------------- Beginner thinks 1Kb == 1000 bytes. Master knows 1Km == 1024m -- Para desuscribirse, mande correo a: ayuda-unsubscribe en linux org mx Para comandos adicionales, envíelo a: ayuda-help en linux org mx