$ echo 'Build: M1234BAAAANAAW9321.1 Location: \\dreyers\builds468\INTEGRATION\M1234BAAAANAAW9321.1 Comments: Build completed, labeled, and marked for retention. Status: Approved BuildDate: 10/25/2012 12:51:25 Build: M1234BAAAANAAW9321.2 Location: \\crmbld01\Builds\FAILED\M1234BAAAANAAW9321.2 Comments: The build is currently in a failed status. Status: Failed BuildDate: 10/25/2012 19:37:17 Build: M1234BAAAANAAW9321.3 Location: \\freeze\builds427\INTEGRATION\M1234BAAAANAAW9321.3 Comments: Build completed, labeled, and marked for retention. Status: Approved BuildDate: 10/25/2012 19:43:28 ' | perl -e' local $/ = ""; my ( $build_date, $location ); while ( <> ) { next unless /status:\s+approved/i; my $date = sprintf "%04d%02d%02d%02d%02d%02d", ( /builddate:\s+(\d+)\D+(\d+)\D+(\d+)\D+(\d+)\D+(\d+)\D+(\d+)/i )[ 2, 0, 1, 3, 4, 5 ]; if ( !defined $build_date || $build_date lt $date ) { ( $build_date, $location ) = ( $date, /location:\s+(.+)/i ); } } print "$location\n"; ' \\freeze\builds427\INTEGRATION\M1234BAAAANAAW9321.3