Re: shellscript: Hilfe gesucht (sed, awk, mailfilter)
On Son, 23 Feb 2003 at 11:03 (+0100), Stephan Maseizik wrote:
> Hallo,
> ich habe mir gerade mailfilter eingerichtet und nutze in der ersten Testphase
> das in der mailfilter-FAQ angegebene Shellscript von Roland Smith, um zu
> sehen, welche Filterregeln greifen:
>
> ---------------------------------------------------------------------
> #!/bin/sh
> # -*- shell-script -*-
> # Id: spamsort,v 1.3 2002/03/14 18:47:39 rsmith Exp rsmith
>
> LOG=/var/log/mailfilter
>
> cat $LOG |awk '/Deleted/ {print $NF}'|sed 's/]//g'| sort|uniq -c|sort -r
Nebenbei: useless use of cat award!
awk '/Deleted/ {print $NF}' $LOG |sed 's/]//g'| sort|uniq -c|sort -r
geht genauso, spart einen Prozess und eine Pipe.
[...]
> Das funktionierende Script möchte ich in folgender Weise erweitern: Es sollen
> nach der Statistik die e-mail Adressen mit gegriffenem Filter untereinander
> aufgelistet werden. Der Output sollte dann also so aussehen:
>
> ---------------------------------------------------------
> 2 '<>^(To|Cc):.*st\.mase@web\.de'
> 1 '^Subject:.*WIN MONEY'
>
> mr.spam@web.de '<>^(To|Cc):.*st\.mase@web\.de'
> mrs.spam@gmx.de '<>^(To|Cc):.*st\.mase@web\.de'
> irgendwer@irgendwo '^Subject:.*WIN MONEY'
> ---------------------------------------------------------
Wenn es nicht unbedingt ein weiterer awk sein muss, könnte folgende
Zeile helfen (ich habe sie aber nur mit Deiner Beispielzeile
getestet):
grep Deleted $LOG | sed \
's/^[^<]*<\([^>]*\)>[^[]*\[Applied filter: \([^]]*\)\].*$/\1 \2/'
Jan
Reply to: