Amit Saxena wrote:
Try
$email =~ s/[[:cntrl:]]/@/g;
instead of
$email =~ s/!/@/g;
Infact try this in the entire file.
Note :- This is on the assumption that there are no other control
characters in the input file.
On Fri, Jun 27, 2008 at 2:51 AM, Aruna Goke <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>> wrote:
David Romero wrote:
use a regular expression
my $email = 'user!dominio.com <http://dominio.com>';
$email =~ s/!/@/g;
###Result [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
http://www.troubleshooters.com/codecorn/littperl/perlreg.htm
On Thu, Jun 26, 2008 at 1:35 PM, Aruna Goke <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>> wrote:
hi,
i have the this log from my sms gateway, however, the
inverted exclamation
mark was sent from the smsc as @.
2008-06-26 17:22:35 SMS request sender:+2342019122 request:
'maruna¡ontng.com <http://ontng.com>,test,Love my test
message' file answer: ''
2008-06-26 17:27:17 Receive SMS [SMSC:caxt] [SVC:] [ACT:]
[BINF:]
[from:+2342019122] [to:+2349191] [flags:-1:0:-1:0:-1]
[msg:43:maruna!ontng.com <http://ontng.com>,test,Love my
test message] [udh:0:]
2008-06-26 17:27:17 SMS request sender:+23422019122 request:
'maruna!ontng.com <http://ontng.com>,test,'Love my test
message'file answer: ''
2008-06-26 17:34:15 Receive SMS [SMSC:caxt] [SVC:] [ACT:]
[BINF:]
[from:+2342019122] [to:+2349191] [flags:-1:0:-1:0:-1]
[msg:43:maruna¡ontng.com <http://ontng.com>,test,Love my
test message] [udh:0:]
I have my script that parse the file and extract as below
To: maruna¡ontng.com <http://ontng.com> Subject: test
Message: Love my test message sender :
[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
What i want to achieve is to translate the to address back to
[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> instaed of
maruna¡ontng.com <http://ontng.com>.
when i checked through, i discover that it is inverted
exclamation mark with
character code 00A1 from unicode(hex) of latin-1 subset. I
need this
translated to @, any help will be appreciated
my script is as below
#!/usr/bin/perl
use strict;
use warnings;
use File::Tail;
use Mail::Sender;
# the access.log is read and the following, recepient is
extracted.
my $name = "/var/log/bulksms/sms_access.log";
my ($mailreci, $mailsubj, @sms, $mailmsg, $mailsend,
$sendee, $sender, $msg,
$domain);
$domain = 'ontng.com <http://ontng.com>';
open my $file, '<', $name or die "could not open $name: $!";
$file=File::Tail->new(name=>$name, maxinterval=>3,
adjustafter=>5);
while (defined($_=$file->read))
{
@sms = split/\[/;
next unless $sms[6]=~/to:\+2349191\]/;
$sendee = $sms[5];
$sendee =~ s/from:\+(\d+)\]/$1/;
$sendee = "[EMAIL PROTECTED]";
$msg = $sms[8];
$msg = (split/:/, $msg)[-1];
$msg =~ s/(\w+)\s?\]/$1/;
# i need only sender and $msg
($mailreci, $mailsubj, $mailmsg) = (split/,/, $msg,
3)[0..2];
print "To: $mailreci Subject: $mailsubj Message:
$mailmsg sender :
$sendee\n";
}
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
http://learn.perl.org/
its not an exclamation mark but inverted exclammation mark.
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
http://learn.perl.org/
my $invexcl = "\x{00A1}";
my $atsign = "\x{0040}";
$mailreci =~ s/(\w+)$invexcl(\w+)/$1$atsign$2/g;
I have used that above code to do the conversion and it seems to work now.
Goksie
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/