[Programación] Re: [Programación] sed--->perl, ayuda

Federico Wiecko programacion@lugro.org.ar
Sat, 30 Jul 2005 12:44:17 -0300


Hola Horacio,

bueno .. esta hecho medio así nomas, sin optimizar la sustitución de patrones 
y sin probar .. pero te sirve de base.
Supongo que si fuiste al curso no tendrás problemas en mejorarlo.

Slds.
Federico .-

P.D: no encontré en sed ningún significado para el caracter ?  (por lo menos 
el de la FSF que viene con Linux), así que lo comenté ya que en Perl tiene un 
significado especial (puede que lo del sed no sea así). Te aconsejo además, 
ir probándolo linea por linea comparandolo con el script shell.


#!/usr/bin/perl -w
#Script de prueba pp.pl 

while (<>)
{
        s/=\?iso-8859-1\?//g;
        s/q\?//g;
        s/Q\?//g;

        s/=A1//g;
        s/=0D//g;
        s/Re://g;
        s/RE://g;

        s/RV://g;
        s/Re\[[1-9]\]://g;
        s/=\?ISO-8859-1\?//g;

        s/\"//g;s/_//g;
        s/=\?windows-1252\?//g;

        s/=\?utf-8\?//g;
        s/=\?us-ascii\?//g;
        s/\[windows-1252\]//g;

        s/=\?utf-8\?//g;
        s/=\?us-ascii\?//g;
        s/\[windows-1252\]//g;

        s/=\?iso-8859-15\?//g;
        s/{Spam\?}//g;
        s/(//g;
        s/)//g;

        s/=E1/á/g;
        s/=E9/é/g;
        s/=ED/í/g;
        s/=F3/ó/g;

        s/=F1/ñ/g;
        s/=C3/á/g;
        s/=FA/ú/g;

        s/\\+/\/g;    #esto supuestamente debería hacer lo mismo que el tr
        print;
}
para probar

chmod u+x pp.pl
./pp.pl < data

On Friday 29 July 2005 19:18, Horacio Castellini wrote:
> Hola, alguien me puede dar una mano de como trasformo estas sustituciones
> en sed (stream editor) a perl? es decir como manejo las expresiones
> regulares para obtener igual resultado...
>
> #!/bin/sh
> zcat $1|sed 's/=?iso-8859-1?//g;s/q?//g;s/Q?//g' >$A
> cat $A|sed 's/=A1//g;s/=0D//g;s/Re://g;s/RE://g' >$B
> cat $B|sed 's/RV://g;s/Re\[[1-9]\]://g;s/=?ISO-8859-1?//g' >$A
> cat $A|sed 's/\"//g;s/_//g;s/=?windows-1252?//g' >$B
> cat $B|sed 's/=?utf-8?//g;s/=?us-ascii?//g;s/\[windows-1252\]//g' >$A
> cat $A|sed 's/=?iso-8859-15?//g;s/{Spam?}//g;s/(//g;s/)//g' >$B
> # Coloca acentos y otros...
> cat $A|sed 's/=E1/á/g;s/=E9/é/g;s/=ED/í/g;s/=F3/ó/g'>$B
> cat $B|sed 's/=F1/ñ/g;s/=C3/á/g;s/=FA/ú/g'|tr -s \
>
> Chas gracias Horacio...
>
>
> _______________________________________________
> Programacion mailing list
> Programacion@lugro.org.ar
> http://www.lugro.org.ar/mailman/listinfo/programacion