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. ----------------------------------------------------------------------------------------------------------------------------------------------