------------------------------------------ DEV: COM-1258 Program:Testing Reviewer:Jackie Description:New Entries rev:r145201 ------------------------------------------ QA: COM-9696 Program:Testing Reviewer:Poikla Description:Some random changes rev:r112356 ------------------------------------------ JIRA: COM-1234 Program:Development Reviewer:John Wick Description:Genral fix rev:r345676 ------------------------------------------ JIRA:COM-1234 Program:Development Reviewer:None Description:Updating Received rev:r909276 ------------------------------------------ JIRA: COM-6789 Program:Testing Reviewer:Balise Mat Description:Audited rev:r876391 ------------------------------------------ JIRA: COM-8585 Program:Testing Reviewer:Gold frt Description: yet to be reviewed rev:r565639 #### #!/usr/bin/perl use strict; use warnings; use Data::Dumper; $Data::Dumper::Sortkeys = 1; $Data::Dumper::Terse = 1; my $file = "log.txt"; open FH, $file or die "Couldn't open file: [$!]\n"; my $data = {}; my $hash = {}; while ( ) { my $line = $_; chomp $line; if ( $line =~ m/(-){2,}/ ) { my $program = $hash->{Program} || ''; my $jira = $hash->{JIRA} || $hash->{QA} || $hash->{DEV} || ''; if ( $program && $jira ) { push @{ $data->{ $program }{ $jira }}, $hash; $hash = {}; } } else { if ( $line =~ m/:/ ) { my ( $key, $value ) = split /:\s*/, $line; $hash->{ $key } = $value; } elsif ( $line =~ m#/# && exists $hash->{Files} ) { $hash->{Files} .= "\n$line"; } } } print 'data = ' . Dumper( $data ); foreach my $prg ( sort keys %{ $data } ) { print "=========================================================== +=\n"; print " PROGRAM : $prg + \n"; print "=========================================================== +=\n"; foreach my $jira ( sort keys %{ $data->{ $prg }}) { print "******************\n"; print "JIRA ID : $jira\n"; print "******************\n"; foreach my $hash ( @{ $data->{ $prg }{ $jira }} ) { foreach my $key ( keys %{ $hash }) { # print the data except Program and JIRA next if $key =~ m/(Program|JIRA|DEV|QA)/; print " $key => $hash->{ $key }\n"; } print "\n"; } } } #### PROGRAM: Development Change IDs: 1.JIRA a.COM-1234 PROGRAM: Testing Change IDs: 1.JIRA a.COM-6789 b.COM-8585 2.QA a.COM-9696 3.DEV a.COM-1258