Hello:
I have two lists of emails saved in flat files one email per line.
My script removes the emails in list 2 if they are present in list 1. Then reprints the email list, one email per line, back into list 2 but without the weeded out emails.
Except that when reprinting back to list 2 the order is random and I want to preserve the same order in which the emails were at first.
EXAMPLE:
if in email list 1 I have:
email_02@server .com
email_04@server .com
email_06@server .com
email_08@server .com
email_10@server .com
and if in email list 2 I have:
email_01@server .com
email_02@server .com
email_03@server .com
email_04@server .com
email_05@server .com
email_06@server .com
email_07@server .com
email_08@server .com
email_09@server .com
email_10@server .com
I want to end up with:
email_01@server .com
email_03@server .com
email_05@server .com
email_07@server .com
email_09@server .com
But Im getting :
email_09@server .com
email_03@server .com
email_07@server .com
email_05@server .com
email_01@server .com
Here is my script:
Thanx for your help
virtualweb
I have two lists of emails saved in flat files one email per line.
My script removes the emails in list 2 if they are present in list 1. Then reprints the email list, one email per line, back into list 2 but without the weeded out emails.
Except that when reprinting back to list 2 the order is random and I want to preserve the same order in which the emails were at first.
EXAMPLE:
if in email list 1 I have:
email_02@server .com
email_04@server .com
email_06@server .com
email_08@server .com
email_10@server .com
and if in email list 2 I have:
email_01@server .com
email_02@server .com
email_03@server .com
email_04@server .com
email_05@server .com
email_06@server .com
email_07@server .com
email_08@server .com
email_09@server .com
email_10@server .com
I want to end up with:
email_01@server .com
email_03@server .com
email_05@server .com
email_07@server .com
email_09@server .com
But Im getting :
email_09@server .com
email_03@server .com
email_07@server .com
email_05@server .com
email_01@server .com
Here is my script:
Code:
foreach (@All_Emails_1) { chomp; if( /\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6}/ ){ $valid_emails{$_} = '1'; } } foreach(@All_Emails_2){ chomp; if( $valid_emails{$_} eq '1' ){ print"<B>($valid_emails{$_}) ($_)<br>"; delete($valid_emails{$_}); push @repeated_emails,$_; } } my @New_All_Emails_1 = keys(%valid_emails); $Back_Up_Emails_1 = 'All_Emails_BKUP.txt'; $Old_All_Emails_1 = 'All_Emails_1.txt'; $New_All_Emails_1 = 'All_Emails_1.txt'; rename($Old_All_Emails_1, $Back_Up_Emails_1)|| die print"Cant rename $Back_Up_Emails_1"; open (EMAILLIST, ">>$New_All_Emails_1") || die print"<br><b>Error: Cant open $New_All_Emails_1"; flock (EMAILLIST); foreach $email @New_All_Emails_1){ print EMAILLIST "$email\n"; } flock (EMAILLIST, 8); close (EMAILLIST);
virtualweb
Comment