#! perl -sw use strict; my %info; while () { my ($partn, $msg, $timestamp ) = unpack 'x4 A2 x6 A63 A19', $_; $info{$partn}{started}= $timestamp, $info{$partn}{job} = $1 if $msg =~ m!^// JOB (.{8})!; print 'Job ', $info{$partn}{job}, ' started in partition ', $partn, ' at ', $info{$partn}{started}, $/, ' and finished at ', $timestamp, ' with a return code of ', $1, $/ if $msg =~ m!^EOJ.+?MAX.RETURN CODE=(\d{4})! ; } =pod #Output c:\test>206952 Job NEQZQCPB started in partition P1 at 07:56:18 10/22/200 and finished at 08:21:51 10/22/200 with a return code of 0001 Job HGPKIOEV started in partition ZK at 08:58:19 10/22/200 and finished at 07:56:05 10/22/200 with a return code of 0002 Job SPZDIAGL started in partition Q1 at 08:39:12 10/22/200 and finished at 09:00:33 10/22/200 with a return code of 0003 Job QMGPMPQK started in partition BG at 08:30:41 10/22/200 and finished at 08:01:53 10/22/200 with a return code of 0004 Job DZCWQXCS started in partition BG at 08:42:35 10/22/200 and finished at 08:05:12 10/22/200 with a return code of 0004 Job EDQYPSEG started in partition AX at 09:06:46 10/22/200 and finished at 08:22:15 10/22/200 with a return code of 0001 Job BXVWTNMB started in partition Q1 at 07:58:45 10/22/200 and finished at 07:55:04 10/22/200 with a return code of 0003 Job ZFWYJVRT started in partition BG at 08:43:40 10/22/200 and finished at 09:04:00 10/22/200 with a return code of 0000 Job SSJYBRLY started in partition AX at 08:08:56 10/22/200 and finished at 07:57:29 10/22/200 with a return code of 0001 c:\test> =cut __DATA__ 000 Q1 0897 // JOB SPZDIAGL 08:39:12 10/22/2002 001 Q1 0652 MSG001 SPZDIAGL 08:26:24 10/22/2002 002 ZK 0229 // JOB HGPKIOEV 08:58:19 10/22/2002 003 AX 0108 // JOB EDQYPSEG 09:06:46 10/22/2002 004 ZK 0735 MSG001 HGPKIOEV 08:57:16 10/22/2002 005 AX 0218 MSG001 EDQYPSEG 08:42:01 10/22/2002 006 P1 0345 // JOB NEQZQCPB 07:56:18 10/22/2002 007 P1 0735 EOJ NEQZQCPB MAX.RETURN CODE=0001 08:21:51 10/22/2002 008 ZK 0973 MSG002 HGPKIOEV 07:56:08 10/22/2002 009 Q1 0317 MSG002 SPZDIAGL 08:47:36 10/22/2002 010 ZK 0945 EOJ HGPKIOEV MAX.RETURN CODE=0002 07:56:05 10/22/2002 011 Q1 0349 MSG003 SPZDIAGL 08:02:11 10/22/2002 012 BG 0903 // JOB QMGPMPQK 08:30:41 10/22/2002 013 AX 0872 MSG002 EDQYPSEG 07:55:13 10/22/2002 014 AX 0931 MSG003 EDQYPSEG 08:09:46 10/22/2002 015 Q1 0697 EOJ SPZDIAGL MAX.RETURN CODE=0003 09:00:33 10/22/2002 016 Q1 0470 // JOB BXVWTNMB 07:58:45 10/22/2002 017 BG 0856 MSG001 QMGPMPQK 08:18:55 10/22/2002 018 BG 0625 MSG002 QMGPMPQK 07:57:50 10/22/2002 019 BG 0753 MSG003 QMGPMPQK 09:08:36 10/22/2002 020 BG 0188 MSG004 QMGPMPQK 08:36:16 10/22/2002 021 BG 0639 EOJ QMGPMPQK MAX.RETURN CODE=0004 08:01:53 10/22/2002 022 BG 0766 // JOB DZCWQXCS 08:42:35 10/22/2002 023 AX 0729 MSG004 EDQYPSEG 08:37:13 10/22/2002 024 BG 0509 MSG001 DZCWQXCS 08:17:23 10/22/2002 025 BG 0276 MSG002 DZCWQXCS 07:55:58 10/22/2002 026 Q1 0581 MSG001 BXVWTNMB 08:30:49 10/22/2002 027 BG 0553 MSG003 DZCWQXCS 09:09:26 10/22/2002 028 BG 0473 EOJ DZCWQXCS MAX.RETURN CODE=0004 08:05:12 10/22/2002 029 AX 0925 EOJ EDQYPSEG MAX.RETURN CODE=0001 08:22:15 10/22/2002 030 Q1 0985 MSG002 BXVWTNMB 08:49:00 10/22/2002 031 Q1 0292 EOJ BXVWTNMB MAX.RETURN CODE=0003 07:55:04 10/22/2002 032 BG 0004 // JOB ZFWYJVRT 08:43:40 10/22/2002 033 BG 0136 MSG001 ZFWYJVRT 09:13:00 10/22/2002 034 AX 0547 // JOB SSJYBRLY 08:08:56 10/22/2002 035 BG 0476 MSG002 ZFWYJVRT 08:28:15 10/22/2002 036 AX 0671 MSG001 SSJYBRLY 07:56:40 10/22/2002 037 BG 0207 MSG003 ZFWYJVRT 08:10:07 10/22/2002 038 BG 0275 EOJ ZFWYJVRT MAX.RETURN CODE=0000 09:04:00 10/22/2002 039 AX 0808 EOJ SSJYBRLY MAX.RETURN CODE=0001 07:57:29 10/22/2002