Datein verändern (mail subject)

Bash, Shell, PHP, Python, Perl, CGI
greenrover
Posts: 203
Joined: 2004-12-17 19:34

Datein verändern (mail subject)

Post by greenrover » 2006-11-29 12:42

Hallo, ich habe einen IMAP Server, wo ich neu einen HAM Ordner eingefügt habe, nun möchte ich, das per CRON ein script läuft, welches
erst den SPAM header entfernt, es dann anlehrnt und dann den header wieder umschreibt:

sed -e 's/Subject: ****SPAM****.*/Subject: $1/g' $i
sa-learn --ham $i
sed -e 's/Subject: .*/Subject: ***Als HAM Makiert*** $1/g' $i

$i ist gleich dem Dateinamen.
Aber wie mache ich das genau?
Das scheint mit sed so nicht zu funtionieren,
erstens, werden die Datein nicht gespeichert und 2tens $1 nicht gegen den Wert von .* ersetzt.

Kann da bitte einer helfen (bin/bash script)

captaincrunch
Userprojekt
Userprojekt
Posts: 7225
Joined: 2002-10-09 14:30
Location: Dorsten

Re: Datein verändern (mail subject)

Post by captaincrunch » 2006-11-29 13:02

Wenn du sed Strings in Variablen abspeichern lassen möchtest, solltest du ihm das (durch Klammern) auch mitteilen (und vor allem auf deine / achten). ;)
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc

greenrover
Posts: 203
Joined: 2004-12-17 19:34

Re: Datein verändern (mail subject)

Post by greenrover » 2006-11-29 13:20

hmm geht auch nicht so recht. Dann ignoriert er die rules komplett.

Und wie bewege ich sed dazu wieder in die datei zu speichern?

juergen
Posts: 133
Joined: 2004-03-30 14:44

Re: Datein verändern (mail subject)

Post by juergen » 2006-11-29 13:28

GreenRover wrote:hmm geht auch nicht so recht. Dann ignoriert er die rules komplett.

Und wie bewege ich sed dazu wieder in die datei zu speichern?
GNU sed kann files "in place" editieren: Option -i

juergen
Posts: 133
Joined: 2004-03-30 14:44

Re: Datein verändern (mail subject)

Post by juergen » 2006-11-29 13:32

GreenRover wrote: ...
sed -e 's/Subject: ****SPAM****.*/Subject: $1/g' $i
Ich denke du willst hier:

Code: Select all

sed -e 's/Subject: ****SPAM****/Subject: /g'
.* matched sonst den Rest deinen Subjects (den du ja wahrscheinlich nicht ersetzen willst).

greenrover
Posts: 203
Joined: 2004-12-17 19:34

Re: Datein verändern (mail subject)

Post by greenrover » 2006-11-29 16:02

ich habe noch eine doof frage:

$i ist wieder der Pfad zu der E-Mail datei:
nun soll er die mail aus dem ham ordner in den posteingang verschieben.
der sed syntax ist ok, jedoch speicher er das nicht als $o

o=echo $i | sed 's#.ham/##g';
mv $i $o

juergen
Posts: 133
Joined: 2004-03-30 14:44

Re: Datein verändern (mail subject)

Post by juergen » 2006-11-29 17:39

GreenRover wrote:ich habe noch eine doof frage:

$i ist wieder der Pfad zu der E-Mail datei:
nun soll er die mail aus dem ham ordner in den posteingang verschieben.
der sed syntax ist ok, jedoch speicher er das nicht als $o

o=echo $i | sed 's#.ham/##g';
mv $i $o
Die Bash kann mittels Parameter-Expansion auch Suchen/Ersetzen, das ist einfacher:

Code: Select all

mv $i ${i/.ham/}

greenrover
Posts: 203
Joined: 2004-12-17 19:34

Re: Datein verändern (mail subject)

Post by greenrover » 2006-11-29 17:56

THX @ all, das Script ist fertig und läuft 1A (-;