Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Reemplazar código ANSI

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Intermedio
Mensaje Mar Abr 25, 2006 7:20 am
ASTURIANO
Perlero Nuevo
Perlero Nuevo
Registrado: 25 Abr 2006
Mensajes: 7
Reemplazar código ANSI Responder citando

Hola,

lo primero presentarme, que soy nuevo por aquí.

No consigo encontrar la manera de reemplazar código ANSI desde perl, bueno, en realidad quiero eliminar todas las referencias ANSI que tengo dentro de un fichero de texto.

No se si alguien me puede ayudar, que me estoy volviendo loco de buscar la solución.

Muchas gracias
Mensaje Mar Abr 25, 2006 10:00 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
Responder citando

No lo he probado, pero estas dos opciones parecen buenas.
Primera, con un módulo:
Código:
use Image::ANSI;
# Leemos el fichero con el ansi
my $fichero = Image::ANSI->new( file => 'fichero.ans' );
my $texto   = $fichero->as_ascii();
print $texto;

Segunda, filtrando todo el texto, por líneas:
Código:
open ANS,'<fichero.ans'
    or die "ERROR: No puedo abrirlo: $!\n";
my ($linea,$texto);
while ( $linea = <ANS> ) {
    $linea =~ s/\033\[(?:\d+(?:;\d+)*)*m//go;
    $texto .= $linea;
}
close ANS;
print $texto;
Más información sobre Image::ANSI.

Ultima edición por explorer el Mie Abr 26, 2006 8:32 am, editado 1 vez
Mensaje Mar Abr 25, 2006 1:06 pm
ASTURIANO
Perlero Nuevo
Perlero Nuevo
Registrado: 25 Abr 2006
Mensajes: 7
Responder citando

Muchas gracias explorer.

Hasta mañana no puedo probarlo, lo del módulo parace buena.

El problema de filtrar es que no consigo reemplazar los símbolos ^[, por ejemplo.

De todos modos mañana a primera hora lo pruebo y te cuento.
Mensaje Mie Abr 26, 2006 2:00 am
ASTURIANO
Perlero Nuevo
Perlero Nuevo
Registrado: 25 Abr 2006
Mensajes: 7
Responder citando

Hola explorer.

Tengo otro problema; no soy capaz de instalar el módulo, (soy bastante nuevo) aunque sea abusar un poco te agradecería si me puedes indicar cómo se hace.

Estoy utilizando Fedora Core 4 y Perl5, he descargado el módulo y desempaquetado y descomprimido en un directorio común. Sigo las indicaciones con build pero no me funciona así que utilizo make, pero el test falla.

No se si debo mover el módulo a otro directorio.

Saludos y gracias
Mensaje Mie Abr 26, 2006 4:03 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
Responder citando

En cualquier linux moderno, te vale que, siendo root del sistema, ejecutes el comando siguiente:
Código:
cpan Image::ANSI
Si no puedes ser root, pruébalo siendo un usuario normal.
Si el comando cpan no está, usa esto:
Código:
perl -MCPAN -e 'install Image::ANSI'


Ultima edición por explorer el Jue Jul 13, 2006 4:38 am, editado 1 vez
Mensaje Mie Abr 26, 2006 5:06 am
ASTURIANO
Perlero Nuevo
Perlero Nuevo
Registrado: 25 Abr 2006
Mensajes: 7
Responder citando

Muchas gracias explorer.

Al final lo conseguí filtrando, encontré la combinación de teclas exacta <ctrl+v><ctrl+[>.

De todos modos he seguido investigando lo de los módulos, (por curiosidad y porque seguro que lo necesitaré en otra ocasión) y creo que para poder usar CPAN tengo que tener salida a internet desde el servidor y en este momento no la tengo.

Muchas gracias de nuevo.
Mensaje Mie Abr 26, 2006 5:18 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
Responder citando

¿No has probado la segunda solución?
Mensaje Mie Abr 26, 2006 8:08 am
ASTURIANO
Perlero Nuevo
Perlero Nuevo
Registrado: 25 Abr 2006
Mensajes: 7
Responder citando

Hola de nuevo,

me imagino que te refieres a la segunda solución para instalar los módulos, la acabo de probar, pero me pide que incluya la configuración del proxy de salida y no puedo salir a internet desde esta máquina.

De todos modos a ver si consigo la salida porque es útil también para actualizar rpms.

Muchas gracias por la ayuda.
Mensaje Mie Abr 26, 2006 8:29 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
Responder citando

No, me refería a la segunda solución de filtrado. ¿No ha funcionado?
Mensaje Jue Abr 27, 2006 3:38 am
ASTURIANO
Perlero Nuevo
Perlero Nuevo
Registrado: 25 Abr 2006
Mensajes: 7
Responder citando

Si, cuando me dices filtrar (perdona, pero soy bastante novato todavía), me imagino que te refieres a utilizar los tr/// o s///, así es como conseguí quitar los símbolos y cadenas que me estorbaban.

Acabo de conseguir salida a internet, así que seguiré probando lo de los módulos y dándote la lata, je,je...

Muchas gracias.
Mensaje Jue Abr 27, 2006 3:54 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
Responder citando

Es que por eso me extrañaba que hubieras usado lo del Ctrl+v y demás...

Fíjate que en el s/// del segundo ejemplo que te pongo arriba, aparece el carácter de escape en formato octal: \033 (27 en decimal), que es justo el carácter que consigues en el editor de textos haciendo esa combinación de teclas.

Otra cosa es que la expresión regular que te indicaba allí no hubiera funcionado, claro...
Mensaje Jue Abr 27, 2006 4:01 am
ASTURIANO
Perlero Nuevo
Perlero Nuevo
Registrado: 25 Abr 2006
Mensajes: 7
Responder citando

Con la solución que me ponías arriba no me funcionaba, solo conseguí que realizara la sustitución al usar la combinación de teclas, no se por qué, en teoría debería valer como tú dices.
Publicar nuevo tema   Responder al tema    Foros de discusión -> Intermedio Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group