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

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: