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/


Reply via email to