[Vienna-pm] Mehrzeiligen Text in Datei ersetzen

Roland Giersig rgiersig at cpan.org
Wed Jun 23 13:02:47 PDT 2010


Ah, ein klassischer Einzeiler, ein Klacks für die 
Schweizer-Nuklear-Kettensäge der IT-Welt... :-)

perl -pe 'BEGIN { $/="\r\n---------- End of message ----------\r\n\r\n" 
} chomp; s/\A(\r\n)*/From unknown\r\n/;' < mercurymail.txt > mbox

LG, Roland

Am 23.06.2010 21:16, schrieb Peter Seitz:
> Hallo Perl-Freunde,
>
> ich habe ein kleines Problem, bei dem ich mit meinen Perl-Kenntnissen
> nicht weiterkomme.
>
> Ich habe ein Mailarchiv vom Mailserver MercuryMail (also als ASCII-Text),
> bei dem die inzelnen Mails mit folgenden Zeilen getrennt sind
>
> --8<---if--you--cut--here--you--will--probably--destroy--your--monitor--
>
> ---------- End of message ----------
>
> --8<---if--you--cut--here--you--will--probably--destroy--your--monitor--
>
> Das Problem ist der dreizeilige Trenner der Einzelmails. Die Zeilenenden
> sind in HEX als  0d 0a angegeben (also Windows).
>
> Ich möchte das Mailarchiv in ein MBOX-Format konvertieren (also den
> Trenner als FROM: ersetzen um anschließend das Archiv mittels MHon-Arc zu
> bearbeiten.
>
> Mir ist nicht klar, wie ich obige Aufgabe erschlagen kann. Soweit ich
> weiß kann man den Zeilentrenner für das Zeilenweise Einlesen ändern, aber
> wie liest man dann das in perl ein. Wenn ich es so ändere, daß ich in der
> Datei solange einlese bis diese Trennsequenz kommt, was passiert, wenn
> dann eine Mail mit 20 MB im Archiv ist. Dann wird ja alles in den
> Speicher gelesen. Das würde das Programm sehr in die Knie zwingen.
>
> Ich bin für Anregungen sehr dankbar, wie man das Problem erschlagen kann.
>
>


More information about the Vienna-pm mailing list