Mar Abr 25, 2006 7:20 am
|
 |
ASTURIANO
Perlero Nuevo

|
Registrado: 25 Abr 2006
Mensajes: 7
|
|
| Reemplazar código ANSI |
|
|
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 |
|
|
|

Mar Abr 25, 2006 10:00 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
|
|
|
|
|
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 |
|

Mar Abr 25, 2006 1:06 pm
|
 |
ASTURIANO
Perlero Nuevo

|
Registrado: 25 Abr 2006
Mensajes: 7
|
|
|
|
|
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. |
|
Mie Abr 26, 2006 2:00 am
|
 |
ASTURIANO
Perlero Nuevo

|
Registrado: 25 Abr 2006
Mensajes: 7
|
|
|
|
|
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 |
|
Mie Abr 26, 2006 4:03 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
|
|
|
|
|
En cualquier linux moderno, te vale que, siendo root del sistema, ejecutes el comando siguiente:
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 |
|
Mie Abr 26, 2006 5:06 am
|
 |
ASTURIANO
Perlero Nuevo

|
Registrado: 25 Abr 2006
Mensajes: 7
|
|
|
|
|
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. |
|
Mie Abr 26, 2006 5:18 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
|
|
|
|
|
| ¿No has probado la segunda solución? |
|
Mie Abr 26, 2006 8:08 am
|
 |
ASTURIANO
Perlero Nuevo

|
Registrado: 25 Abr 2006
Mensajes: 7
|
|
|
|
|
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. |
|
Mie Abr 26, 2006 8:29 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
|
|
|
|
|
| No, me refería a la segunda solución de filtrado. ¿No ha funcionado? |
|
Jue Abr 27, 2006 3:38 am
|
 |
ASTURIANO
Perlero Nuevo

|
Registrado: 25 Abr 2006
Mensajes: 7
|
|
|
|
|
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. |
|
Jue Abr 27, 2006 3:54 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
|
|
|
|
|
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... |
|
Jue Abr 27, 2006 4:01 am
|
 |
ASTURIANO
Perlero Nuevo

|
Registrado: 25 Abr 2006
Mensajes: 7
|
|
|
|
|
| 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. |
|
Powered by phpBB © 2001, 2005 phpBB Group
|