Elimina por consola los signos > de los correos reenviados
6oct
24
24
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.txtEl programa en cuestión pesa 280 Kb. El script pesa 47 bytes







Los contenidos de éste sitio se encuentran publicados bajo
Alejandro Segovia
12:16 pm
24 octubre. 2008
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!
fernando
9:17 pm
24 octubre. 2008
Gracias Alejandro.
Saludos
anonimo
11:40 pm
24 octubre. 2008
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.
fernando
5:54 am
25 octubre. 2008
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…
Pablo
5:47 pm
25 octubre. 2008
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
fernando
6:20 pm
25 octubre. 2008
Es verdad, no probé de guardar el resultado del script con >. Cómo no me di cuenta :S
Ya quedó corregido.
¡Muchas gracias Pablo!