Hi Anirban,

Here is one way to do it

[code]
use strict;
use warnings;

my @data;
open my $fin, '<', 'data.txt' or die "Cannot open file ($!)";

while(<$fin>) {
    my($val) = split ',', $_; #split the data using comma
    my($key, $value) = split '=', $val; #split the values using equal sign
(=)
    $value =~ /.*?-([\d\-]+)$/; #extract the numbers following the pattern
(-DIGIT-DIGIT)
    push @data, $1;
}

#sort in ascending order
@data = sort {$a cmp $b} @data;
print join "\n", @data;
[/code]

[data.txt]
RXMOI:MO=RXOTRX-473-0,SC=0,DCP1=178,SIG=SCCONC,DCP2=179&&186,TEI=0;
RXMOI:MO=RXOTRX-473-5,SC=0,DCP1=223,SIG=SCCONC,DCP2=224&&231,TEI=5;
RXMOI:MO=RXOTRX-473-1,SC=0,DCP1=187,SIG=SCCONC,DCP2=188&&195,TEI=1;
RXMOI:MO=RXOTRX-473-9,SC=0,DCP1=259,SIG=SCCONC,DCP2=260&&267,TEI=9;
RXMOI:MO=RXOTRX-473-4,SC=0,DCP1=214,SIG=SCCONC,DCP2=215&&222,TEI=4;
RXMOI:MO=RXOTRX-1-8,SC=0,DCP1=250,SIG=SCCONC,DCP2=251&&258,TEI=8;
RXMOI:MO=RXOTRX-1-2,SC=0,DCP1=196,SIG=SCCONC,DCP2=197&&204,TEI=2;
RXMOI:MO=RXOTRX-1-0,SC=0,DCP1=178,SIG=SCCONC,DCP2=179&&186,TEI=0;
RXMOI:MO=RXOTRX-1-5,SC=0,DCP1=223,SIG=SCCONC,DCP2=224&&231,TEI=5;
RXMOI:MO=RXOTRX-1-1,SC=0,DCP1=187,SIG=SCCONC,DCP2=188&&195,TEI=1;
RXMOI:MO=RXOTRX-1-4,SC=0,DCP1=214,SIG=SCCONC,DCP2=215&&222,TEI=4;
RXMOI:MO=RXOTRX-460-9,SC=0,DCP1=259,SIG=SCCONC,DCP2=260&&267,TEI=9;
RXMOI:MO=RXOTRX-460-4,SC=0,DCP1=214,SIG=SCCONC,DCP2=215&&222,TEI=4;
RXMOI:MO=RXOTRX-460-8,SC=0,DCP1=250,SIG=SCCONC,DCP2=251&&258,TEI=8;
RXMOI:MO=RXOTRX-460-5,SC=0,DCP1=223,SIG=SCCONC,DCP2=224&&231,TEI=5;
RXMOI:MO=RXOTRX-460-1,SC=0,DCP1=187,SIG=SCCONC,DCP2=188&&195,TEI=1;
RXMOI:MO=RXOTRX-460-0,SC=0,DCP1=178,SIG=SCCONC,DCP2=179&&186,TEI=0;
[/data.txt]

[output]
1-0
1-1
1-2
1-4
1-5
1-8
460-0
460-1
460-4
460-5
460-8
460-9
473-0
473-1
473-4
473-5
473-9
[/output]

On Tue, Mar 24, 2015 at 4:12 PM, Anirban Adhikary <
anirban.adhik...@gmail.com> wrote:

> Hi List
> I have a file like this.
> RXMOI:MO=RXOTRX-*473-0*,SC=0,DCP1=178,SIG=SCCONC,DCP2=179&&186,TEI=0;
> RXMOI:MO=RXOTRX-*473-5*,SC=0,DCP1=223,SIG=SCCONC,DCP2=224&&231,TEI=5;
> RXMOI:MO=RXOTRX-*473-1*,SC=0,DCP1=187,SIG=SCCONC,DCP2=188&&195,TEI=1;
> RXMOI:MO=RXOTRX-*473-9*,SC=0,DCP1=259,SIG=SCCONC,DCP2=260&&267,TEI=9;
> RXMOI:MO=RXOTRX-*473-4,*SC=0,DCP1=214,SIG=SCCONC,DCP2=215&&222,TEI=4;
> RXMOI:MO=RXOTRX-*1-8*,SC=0,DCP1=250,SIG=SCCONC,DCP2=251&&258,TEI=8;
> RXMOI:MO=RXOTRX-*1-2,*SC=0,DCP1=196,SIG=SCCONC,DCP2=197&&204,TEI=2;
> RXMOI:MO=RXOTRX-*1-0*,SC=0,DCP1=178,SIG=SCCONC,DCP2=179&&186,TEI=0;
> RXMOI:MO=RXOTRX-*1-5*,SC=0,DCP1=223,SIG=SCCONC,DCP2=224&&231,TEI=5;
> RXMOI:MO=RXOTRX-*1-1,*SC=0,DCP1=187,SIG=SCCONC,DCP2=188&&195,TEI=1;
> RXMOI:MO=RXOTRX-*1-4,*SC=0,DCP1=214,SIG=SCCONC,DCP2=215&&222,TEI=4;
> RXMOI:MO=RXOTRX-*460-9*,SC=0,DCP1=259,SIG=SCCONC,DCP2=260&&267,TEI=9;
> RXMOI:MO=RXOTRX-*460-4*,SC=0,DCP1=214,SIG=SCCONC,DCP2=215&&222,TEI=4;
> RXMOI:MO=RXOTRX-*460-8*,SC=0,DCP1=250,SIG=SCCONC,DCP2=251&&258,TEI=8;
> RXMOI:MO=RXOTRX-*460-5*,SC=0,DCP1=223,SIG=SCCONC,DCP2=224&&231,TEI=5;
> RXMOI:MO=RXOTRX-*460-1*,SC=0,DCP1=187,SIG=SCCONC,DCP2=188&&195,TEI=1;
> RXMOI:MO=RXOTRX-*460-0*,SC=0,DCP1=178,SIG=SCCONC,DCP2=179&&186,TEI=0;
>
> This file is from a testing environment. But in production environment
> this file can be more than 500 lines. So my goal is to sort the file based
> on the bold numbers and create a new file.
> This is required for data validation. If the file is not in sorted order
> then it will be very difficult to validate the file manually.
>
> For this I have started with the following code
>
> #!/usr/bin/perl
> use strict;
> use warnings;
> my $file_name = "RXMOI_TRX_CMD";
> open my $RFH, '<', $file_name;
> my $sequence_no;
> my $lowest_no;
> while (my $line = <$RFH>) {
>         chomp($line);
>         if ($line =~ m/.*?\-(\d+)\-(\d+).*/) {
>                 $sequence_no = "$1$2";
>                 print "$sequence_no\n";
>         }
> }
>
> I can extract the number into a variable but after that not getting any
> idea how to proceed. Could you please provide some logic so that I can
> proceed further.
>
> Best Regards
> Anirban.
>
>
>


-- 
best,
Shaji
----------------------------------------------------------------------------------------------------------------------------------------------
Your talent is God's gift to you. What you do with it is your gift back to
God.
----------------------------------------------------------------------------------------------------------------------------------------------

Reply via email to