#!/usr/bin/perl # vi:ts=4 sw=4 et: use strict; use warnings; my @result = (); while ( my $line = ) { chomp $line; if ( index( $line, '00 BAPI', 0 ) == 0 ) { #print substr( $line, rindex( $line, ']')+2 ), '***'; push @result, substr( $line, rindex( $line, ']')+2 ) . '***'; } elsif ( index( $line, '20 BAPI', 0 ) == 0 ) { #print substr( $line, rindex( $line, ']')+2 ), $/; $result[-1] .= substr( $line, rindex( $line, ']')+2 ); } } { local $" = local $\ = $/ ; print "@result"; } __END__ 00 BAPI_RSLT_REQ_ISOMSG [TESTER] 22 F1 00 20 BAPI_RSLT_RESP_ISOMSG [HSCAN_UDS_500;RDU_212.RDU_212_000004_not_released] 62 F1 00 00 00 04 03 00 BAPI_RSLT_REQ_ISOMSG [TESTER] 22 F1 54 20 BAPI_RSLT_RESP_ISOMSG [HSCAN_UDS_500;RDU_212.RDU_212_000004_not_released] 62 F1 54 00 46 00 BAPI_RSLT_REQ_ISOMSG [TESTER] 22 F1 55 20 BAPI_RSLT_RESP_ISOMSG [HSCAN_UDS_500;RDU_212.RDU_212_000004_not_released] 62 F1 55 00 46 00 BAPI_RSLT_REQ_ISOMSG [TESTER] 22 F1 50 20 BAPI_RSLT_RESP_ISOMSG [HSCAN_UDS_500;RDU_212.RDU_212_000004_not_released] 62 F1 50 07 1D 00 00 BAPI_RSLT_REQ_ISOMSG [TESTER] 22 F1 51 20 BAPI_RSLT_RESP_ISOMSG [HSCAN_UDS_500;RDU_212.RDU_212_000004_not_released] 62 F1 51 08 12 00 00 BAPI_RSLT_REQ_ISOMSG [TESTER] 22 F1 53 20 BAPI_RSLT_RESP_ISOMSG [HSCAN_UDS_500;RDU_212.RDU_212_000004_not_released] 62 F1 53 08 0B 00 00 BAPI_RSLT_REQ_ISOMSG [TESTER] 22 F1 11 20 BAPI_RSLT_RESP_ISOMSG [HSCAN_UDS_500;RDU_212.RDU_212_000004_not_released] 62 F1 11 30 33 37 35 34 35 33 34 33 32 00 BAPI_RSLT_REQ_ISOMSG [TESTER] 22 F1 21 20 BAPI_RSLT_RESP_ISOMSG [HSCAN_UDS_500;RDU_212.RDU_212_000004_not_released] 62 F1 21 32 31 32 34 34 32 32 33 33 32 00 BAPI_RSLT_REQ_ISOMSG [TESTER] 22 F1 31 20 BAPI_RSLT_RESP_ISOMSG [HSCAN_UDS_500;RDU_212.RDU_212_000004_not_released] 7F 22 31