Hallo, Am Fre, 01 Aug 2008, Stefan König schrieb:
Ich bastele an einem Bash Skript, dass mir /var/log/mail nach vorkommenden Domains durchsuchen soll.
Nach bekannten Domains? Also welche einer vorgegebenen Liste wie oft vorkommen? Absender oder Empfänger?
function scan_mail { cat /var/log/mail | while read line do if [[ $line =~ "$1" ]] then let counter=$counter+1 fi done }
for i in $domainliste do scan_mail $i done
for adr in $domainliste; do grep -c "$adr" /var/log/mail done Der ganze Aufwand drumrum lohnt nicht. In awk könnte man es z.B. so machen: ==== #!/usr/bin/gawk -f BEGIN { domains = "dhaller.de,endjinn.de"; split(domains, t, ","); for( v in t ) { doms[t[v]] = 0; } } { for ( v in doms ) { if ( $0 ~ v ) { doms[v]++; } } } END { for ( v in doms ) { print v ": " doms[v]; } } ==== Wobei die Initialisierung rel. kompliziert ist, damit man nur einen "String" als Initialisierung angeben muß. Alternativ: === BEGIN { doms["domain.eins"] = 0; doms["domain.zwei"] = 0; # ... } # Rest wie oben ==== Der Vorteil der AWK-Lösungen ist, daß die Datei nur einmal gelesen werden muß. Eine Verfeinerung bzgl. Empfänger/Absender hab ich jetzt weggelassen. HTH, -dnh -- "I think it's a beautiful day to go to the zoo and feed the ducks. To the lions." - Brian Kantor -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org