in reply to Seach for data that is on a different line from the search string

If your data file looks like this:

Timestamp 12:01:03.348 0x014D TNDB -- Result Status: 1 Source: 2 Freq: 50 Slice: 4 Mode: 3 Output: 234.209 Diff: 390.009 Dev: 89.909 Timestamp 12:01:03.348 0x014E TNDB -- Result Status: 1 Source: 2 Freq: 50 Slice: 4 Mode: 3 Output: 234.209 Diff: 390.009 Dev: 89.909

Then this will work:

#!/usr/bin/perl use warnings; use strict; use 5.10.0; open my $fh, '<', 'data.txt' or die $!; my $begin = 0; while ( my $line = <$fh> ){ chomp $line; $begin = 1 if $line =~ /0x014E/; next unless $begin; say $line and last if $line =~ /^Output:/; }

You'll need to paste a couple blocks of your copy/pasted data file into code blocks though. Right below the window you post in describes this clearly

Replies are listed 'Best First'.
Re^2: Seach for data that is on a different line from the search string
by Anonymous Monk on Mar 31, 2012 at 06:45 UTC
    Another way of doing this:
    use 5.010; $/ = "\n--\n"; while ( defined(my $line = <$fh>) ){ say $1 if $line =~ /\b0x014E\b/ and $line =~ /^(Output: .+)/m; }