sub searchData { my @headers = `grep -F -n \'MatchHeader\' $fileName | cut -f1 -d:`; my @matches = `grep -F -n \'$string\' $fileName | cut -f1 -d:`; my $match; my $head; my $higher; my $lower; foreach $match (@matches) { chomp ($match); foreach $head (@headers) { chomp ($head); if ($head <= $match) { $lower = $head; } elsif ($head > $match) { $higher = $head; last; } } $higher--; system("sed -n '$lower,$higher\p\;$higher'\q data_file"); } }