[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: