Saver
(Saver)
#1
Witam, mam mały problem, a więc mam spamassassin’a i każdy spam jest oznaczony w tytule jako “*****SPAM*****”
I teraz chętnie bym zrobił aby wiadomości z “*SPAM*” były przenoszone do pliku SPAM.
Więc regex i if:
root@aaa:~$ cat .mailfilter
if ( /^"Subject:.*SPAM/ )
to "$HOME/mail/SPAM"
tylko to nie działa, wszystkie wiadomości trafiają do głównego pliku inbox.
Musisz się chyba podszkolić w bash.
cat .mailfilter - wypisuje zawartość pliku .mailfilter
a dalej … ojej co się stało ?
Bash nie uwzględnia tekstu wypisanego w konsoli, no chyba że zapiszesz go do jakieś zmiennej lokalnej …
Tu masz bardzo dobry kurs bash:
http://dief.republika.pl/main.html
Sam się z niego uczyłem.
Mogę napisać program lub skrypt dla Ciebie.
Znam C++, Jave, Assemblera, Bash i parę innych.
Podaj przykładowy plik z wiadomościami i spamem.
Saver
(Saver)
#3
poleceniem cat chciałem pokazać co mam w pliku…
czyli też nie wierz jak to naprawić?
Cóż …
Używając bash`a napisałem nie jeden skrypt, ale nie o takiej problematyce.
Chodziło mi o to, że jak wpiszesz cat nazwa_pliku to tylko wypisze jego zawartość i nic z tym nie zrobi, nie ważne co po tym wpiszesz.
Możesz jakieś polecenie przechować do zmiennej np.:
pid_x = pidof X
Pokombinowałem trochę i udało mi się napisać coś takiego:
echo 1 >> x
echo 2 >> x
echo 3 >> x
cat x | while read linia; do echo $linia; done
Czyli:
Dopisz do pliku x 1.
Dopisz do pliku x 2.
Dopisz do pliku x 3.
W wypisanej zawartości pliku x: dopóki można odczytać lnie, zapisz jej zawartość do zmiennej linia i wypisz zawartość zmiennej linie
W efekcie wypisze:
1
2
3
, czyli zawartość pliku, lecz nie od razu, tylko linijka po linijce.
Możesz już chyba stąd dokończyć swój skrypt, porównując zmienną linia z dowolną wartością.
Swoje działanie umieszczasz między ( … ) do ,a ; done ( … ).
W razie czego możesz użyć man by sprawdzić składnię tych czy innych poleceń.
Saver
(Saver)
#5
No to chyba każdy wie.
Udało mi się poprawić skrypt, teraz działa 
root@aaa:~$ cat .mailfilter
if ( /^"Subject:.*spam/ )
to "$HOME/mail/SPAM"