Hi Team,
Could you please help me on below one ..
etrademail1.txt
etDefaultLogin=pdayanan
mail=poojaaragam.dayanand@exchange.etr.comx
employeeNumber=31567
etDefaultLogin=sudrupa
mail=sudrupa.ayanand@exchange.etr.comx
employeeNumber=318967
etDefaultLogin=gurathi
mail=gurothi.anand@exchange.etr.comx
employeeNumber=3189678
maillist2.txt
eruid=dwolinsk
eradesmtpemail=Xdaniel.wolinski@exchange.etr.com
eruid=pdayanan
eradesmtpemail=Xpoojaaragam.dayanand@exchange.etr.comx
eruid=sbtura
eradesmtpemail=Xsbtura.wolinski@exchange.etr.com
eruid=durapda
eradesmtpemail=Xdurapas.upreras@exchange.etr.com
Expected output in separate file output.txt ------> mapping with etDefaultLogin=pdayanan and eruid=pdayanan
etDefaultLogin=pdayanan
eradesmtpemail=Xpoojaaragam.dayanand@exchange.etr.comx
employeeNumber=31567
etDefaultLogin=sudrupa
eradesmtpemail=Xsudrupa.ayanand@exchange.etr.comx
employeeNumber=318967
etDefaultLogin=gurathi
eradesmtpemail=Xgurothi.anand@exchange.etr.comx
employeeNumber=3189678
Thanks,
Srinivasarao K
Invoke this following perl script as:
maillistjoiner maillist etradedatafile
Script is:
#! /usr/bin/perl
use strict;
use warnings;
use File::Basename;
$/ = "\n\n";
$\ = "\n";
my %MAILLIST;
my @FIELDLIST = qw{ etDefaultLogin eradesmtpemail employeeNumber };
# data parse
sub parse($) {
my $X = {};
foreach my $entry (split /\n/, $_[0]) {
my ($key, $value) = $entry =~ m{^\s*([^=]+)=(\S+)};
next unless defined $key;
$X->{$key} = $value;
};
return $X;
}
# Read maillist
my $list = shift(@ARGV);
die unless defined $list;
open FH, '<', $list;
while (<FH>) {
my $X = parse($_);
unless (defined $X->{eruid}) {
# print STDERR $list, '(', $., '): missing eruid';
next;
}
unless (defined $X->{eradesmtpemail}) {
print STDERR $list, '(', $., '): missing eradesmtpemail for ', $X->{eruid};
next;
}
$MAILLIST{$X->{eruid}} = $X->{eradesmtpemail};
}
close FH;
# Read datafile
my $data = shift(@ARGV);
die unless defined $data;
open FH, '<', $data;
while (<FH>) {
my $X = parse($_);
unless (defined $X->{etDefaultLogin}) {
# print STDERR $data, '(', $., '): missing etDefaultLogin';
next;
}
if (defined $MAILLIST{$X->{etDefaultLogin}}) {
$X->{eradesmtpemail} = $MAILLIST{$X->{etDefaultLogin}};
}
else {
$X->{eradesmtpemail} = $X->{mail};
}
foreach my $key (@FIELDLIST) {
if (defined $X->{$key}) {
print $key, '=', $X->{$key};
}
}
print $\;
}
close FH;