Fórumok
Sziasztok!
mbox fájlok tartalmát kéne összehasonlítanom, de nem szeretnék rá programot írni. Nem tudtok kész megoldásról? Nekem az is elég lenne, ha találnék egy olyan progit, amely a mutthoz hasonlóan kilistázza az üzenetek egy szövegfájlba. Ötlet?
- 628 megtekintés
Hozzászólások
Bocs, most látom, hogy már írtam ilyet. Bár MIME támogatás az nincs.
#!/usr/bin/perl -CSD
# Author: Andor Toth <t.andor_at_freemail.hu>
# -CSD az UTF-8 miatt, lasd man perlrun
use strict;
use utf8;
my @F;
my $n = 0;
my %a;
my $active = 1;
my $prevline;
my $last = 0;
if (@ARGV == 0 or $ARGV[0] eq '-h' or $ARGV[0] eq '--help') {
print "lsmail: List mbox contents (number | date | from | subject)\n\n\tUsage:\n\t\tlsmail /var/mail/mboxfile\n\n";
exit;
}
while(<>) {
if (/^From / && $prevline =~ /^$/) { $active = 1; }
if (/^$/) { $active = 0; }
$prevline = $_;
if ($active) {
@F = split(/^.*?: /);
$F[1]=~s/\a\s+|\s+\z//g;
$a{$1}=$F[1] if /^(From|Date|Subject): /;
}
if (/From / or eof){
next unless $n++; # hogy az elso From utan ne irjuk ki amikor meg nincs semmi
($a{From}) = $a{From}=~/\<(.*?)\>/ if ($a{From}=~/</);
$a{Subject}=~s/\=\?.*?\?\w\?//eg;
$a{Subject}=~s/=(\w\w)/chr(hex($1))/eg;
utf8::decode($a{Subject});
$a{Subject}=~s/\?\=|\=//g;
printf("%3d | %-32.32s | %-30.30s | %.40s\n",$n-1,$a{Date},$a{From},$a{Subject});
}
}
- A hozzászóláshoz be kell jelentkezni