use strict; my %CELL; my %CELL_TYPE_COUNT; while (my $line = <DATA>) { if ($line =~ /CELL\s+(\d+)\s+(.+?),.+?HEH/) { # take CELL number into $1 and the information after the number (and before the first comma) into $2 $CELL{$1}{$2}++; $CELL_TYPE_COUNT{$2}++; } }
# header print "CELL,".join(",",sort keys %CELL_TYPE_COUNT)."\n"; # body foreach my $cellNo (sort keys %CELL) { # you can use map function, but it never sits well on my brain print "$cellNo"; foreach my $info (sort keys %CELL_TYPE_COUNT) { print ", $CELL{$cellNo}{$info}"; } print "\n"; } __DATA__ 00 REPT:CELL 20 CDM 1, CRC, HEH SUPPRESSED MSGS: 0 ERROR TYPE: ONEBTS MODULAR CELL ERROR SET: DS1-MLG ASSOCIATION CHANGE MLG 1 DS1 1,2 00 REPT:CELL 20 CDM 1, CRC, HEH SUPPRESSED MSGS: 0 ERROR TYPE: ONEBTS MODULAR CELL ERROR SET: DS1-MLG ASSOCIATION CHANGE MLG 1 DS1 1,2 Output: CELL,CDM 1 20, 2 Let me know if it's correct. On Sat, Oct 15, 2011 at 11:55 AM, Chris Stinemetz <chrisstinem...@gmail.com> wrote: > On Sat, Oct 15, 2011 at 1:12 PM, Leo Susanto <leosusa...@gmail.com> wrote: >> Chris, You need to let us know what do you want the script to do, >> believe me, writing the script is the easy part. >> > > > Okay I will try to clarify. For right now there is only one type of > line that I am interested in from the input file. > > I will try to break this down sequentually in how I am trying to > construct this program: > > Read the input file and only keep lines that have a line with the > text pattern: HEH > > Now the tricky part I am having some difficulty with: > > sort and count each occurence of different types of HEH grouped by the > CELL number. > > And finally datafill the format table with the results. > > So for example: > > 00 REPT:CELL 20 CDM 1, CRC, HEH > SUPPRESSED MSGS: 0 > ERROR TYPE: ONEBTS MODULAR CELL ERROR > SET: DS1-MLG ASSOCIATION CHANGE > MLG 1 DS1 1,2 > > 00 REPT:CELL 20 CDM 1, CRC, HEH > SUPPRESSED MSGS: 0 > ERROR TYPE: ONEBTS MODULAR CELL ERROR > SET: DS1-MLG ASSOCIATION CHANGE > MLG 1 DS1 1,2 > > Would output something like: > > Cell CBR CDM1 CDM2 CDM3 TFU1 TFU2 CCU EVM TXAMP > CTRM > --------- -------- -------- --------- --------- > -------- --------- -------- -------- -------- > -------- > 20 2 > > > I hope this helps clarify. > > Thanks for all the help, > > Chris > -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/