Elimina por consola los signos > de los correos reenviados

6
oct
24
2008
Shell

Leyendo el blog del amigo SpamLoco, me encontré con la entrada Eliminar los signos > de los correos reenviados. En ella, comenta de un programa para un sistema operativo que por acá no usamos, que permite eliminar los signos “>” en los correos reenviados o respondidos muchas veces. ¡Inspiración! También se puede hacer por línea de comandos:

fernando@nando-debian:~$ cat email.txt
>>El script permite eliminar todos los > que aparecen
>>cuando un correo es reenviado muchas veces. 

>>Simplemente debes pasarlo como parámetro a este script.
fernando@nando-debian:~$ sed 's/>*//' email.txt
El script permite eliminar todos los > que aparecen
cuando un correo es reenviado muchas veces. Simplemente debes pasarlo como parámetro a este script.

Podemos usar los signos > mismos para redirigir la salida de este comando. Por ejemplo:

fernando@nando-debian:~$ sed 's/>*//' email.txt > email2.txt

Si guardamos la línea en un archivo .sh con permiso de ejecución, puede quedar algo así:

#!/bin/bash
sed 's/>*//' $1 > p$1 && mv p$1 $1

Y el archivo de correo se pasa como parámetro:

./script.sh email.txt

El programa en cuestión pesa 280 Kb. El script pesa 47 bytes :D

Comparte:
  • Print
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • BarraPunto
  • Bitacoras.com
  • Tumblr
  • Twitter

6 comentarios para “Elimina por consola los signos > de los correos reenviados”


  1. Firefox 3.0.3Mac OS

    También puedes utilizar sed para hacer una sustitución “inplace”, de la siguiente manera:

    GNU:
    sed -i “s/>*//” $1

    BSD:
    sed -i “” “s/>*//” $1

    Saludos!


  2. Debian IceWeasel 3.0.3Debian GNU/Linux

    Gracias Alejandro.

    Saludos


  3. Firefox 3.0.3SuSE

    Este tipo de cosas hoy en día no tienen ningún valor, por mucho que las publiques a modo “generoso”. Asúmelo, nadie lo usará a menos que integres la funcionalidad en un cliente de correo, por ejemplo Thunderbird, Evolution, etc.etc.


  4. Debian IceWeasel 3.0.3Debian GNU/Linux

    Mmmmmmmmmhhh… Pero puedo hacerlo…
    Y eso es lo que importa.

    Si programara solo cosas que los usuarios van a usar, me aburriría mucho.

    No entiendo el objetivo de tu mensaje…


  5. Firefox 3.0.3GNU/Linux

    Fernando,

    Probaste el ejemplo antes de incluirlo aquí ?

    Pregunto porque esto no funciona :)

    La razón es simple, si ejecutas:

    cmd P > P

    el redirect de la shell borrara el archivo P
    ANTES de ejecutar el comando cmd.
    Al final tendrás un archivo con 0 bytes.

    Para que funcione deberías hacer algo así:

    cmd P > P1 && mv P1 P

    Por esta razón, hacer un script con esto:

    cmd $1 > $1

    es lo mismo que hacer:

    > $1

    o puesto de otra forma:

    rm $1
    touch $1

    Por lo demás, esta bueno ya que le puede
    servir a alguien que este aprendiendo
    sed y expresiones regulares.

    Bye


  6. Debian IceWeasel 3.0.3Debian GNU/Linux

    Es verdad, no probé de guardar el resultado del script con >. Cómo no me di cuenta :S

    Ya quedó corregido.

    ¡Muchas gracias Pablo!