Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use warnings;
- use strict;
- use utf8;
- use File::Basename;
- my $filename = $ARGV[0];
- open(my $odjave, '< :encoding(UTF-8)', $filename) or die $!;
- local $/ = undef;
- my $whole_odjave = <$odjave>;
- (my $file, my $dir, my $ext) = fileparse($filename, qr/\.[^.]*/);
- my @text = split(/Importance*.*/, $whole_odjave); # split into header chunks
- my %ODJAVE = ();
- foreach (@text) {
- next unless length;
- my $header = $_;
- my $subject;
- my $sender;
- if ($_ =~ m/Subject*.*/) {
- $subject = substr($&, 9);
- $subject =~ s/\+/ /g;
- }
- if ($_ =~ m/SentRepresentingEmailAddress*.*/) {
- $sender = substr($&, 30);
- }
- if ($subject && $sender) {
- if (exists $ODJAVE{$subject}) {
- push($ODJAVE{$subject}, $sender);
- }
- else {
- $ODJAVE{$subject} = [$sender];
- }
- }
- }
- foreach my $key (keys %ODJAVE) {
- my $out_string = '';
- foreach (@{$ODJAVE{$key}}) {
- $out_string .= "'$_',";
- }
- chop($out_string); # remove last comma
- open(my $out, '>', "$file - $key$ext") or die $!;
- print $out $out_string;
- close($out);
- }
- close($odjave);
- exit();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement