Elimina por consola los signos > de los correos reenviados

Publicado el Viernes, 24 de octubre de 2008

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 😀

6 comentarios en este post

Feed de comentarios
  1. Avatar

    anonimo 24 octubre. 2008 - 23:40

    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.

  2. Avatar

    fernando 25 octubre. 2008 - 05:54

    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…

  3. Avatar

    Pablo 25 octubre. 2008 - 17:47

    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

Dejar un comentario

Toasty!