Re: Wo gibt es die mbox Archive zur debian mailing liste?
Hallo,
On 2004.09.28 17:48, Jan Kesten wrote:
By the way: Hat jemand ein Procmail-Rezept, mit dem man diese
riesige mbox nach Datum sortieren lassen kann? Das wäre vielleicht
nicht schlecht - und umwandeln in Maildir könnte man sie dabei auch
noch, wenn man mal reinschauen muss :-)
ein richtiges Rezept eigentlich noch nicht, eher eine Idee im Ansatz --
wobei ich denke, dass das ganze sehr umstaendlich sein koennte. Taugt
wahrscheinlich wirklich nur dazu, die Mails aus einer mbox einmalig zu
sortieren.
Man koennte die einzelnen Mails aus der mbox extrahieren
cat MBOX | formail -s | procmail
und dann mit dieser procmail-Regel alles in ein Verzeichnis legen:
:0:
temp-mails/
Die Mails sind jetzt natuerlich noch nicht geordnet. Also wuerde ich
erstmal eine Datenbank erstellen, in der ich Dateiname und Datum der
Mail speichere. Dazu ein Mini-Script write.sh erstellen:
#!/bin/sh
echo -ne "$1\t"
grep "^Date:" $1 | sed -e 's/^Date: *//'
und das fuer alle Dateien im Verzeichnis aufrufen:
find temp-mails -type f -mindepth 1 -exec ./write.sh {} \; >tmp
Wahrscheinlich muesste man noch die Datumsangabe modifizieren. Hab das
mal ueber ein paar Mails laufen lassen, da kommen recht verschiedene
Strings vor:
test1 Wed, 25 Aug 2004 13:16:02 +0200 (CEST)
test2 Wed, 25 Aug 2004 22:40:48 GMT
test3 Thu, 26 Aug 2004 17:19:39 CEST
Mittels sed/awk sollte es moeglich sein, daraus etwas in dieser Art zu
zaubern:
test1 2004-08-25_05:50:11 +0000
Man koennte auch noch die verschiedenen Zeitzonen beruecksichtigen.
Jedenfalls sollte es dann kein Problem mehr sein, die Datei nach
aufsteigendem Datum zu sortieren und die Mails aus den einzelnen
Dateien der Reihe nach wieder in eine mbox zu schreiben:
queue=`cat tmp | sort -k 2 | awk '{print $1}'`
for i in $queue; do cat $i >> new_mbox; done
Inwieweit das sinnvoll ist, sei dahingestellt. Gerade faellt mir noch
eine bessere Moeglichkeit ein: die Mails werden nicht in eine mbox
zurueckgeschrieben, sondern das Empfangs-/Versanddatum der Mail wird
per "touch -t" zum Erstellungsdatum der jeweiligen Datei gemacht. Mit
"ls -t" kann man dann einfach die Mails in der Reihenfolge, in der sie
eingetroffen bzw. abgeschickt worden sind, auflisten.
Schoenen Gruss,
Andreas
Reply to: