Hi, no sed, use Perl natively for this! It's what Perl is made for. Open the file, loop through the lines, save the last instance of YYY, print it when you find ABC.
use strict;
use warnings;
my $last_seen;
for my $line ( <DATA> ) {
$last_seen = $line if $line =~ /YYY/;
print $last_seen if $line =~ /ABC/;
}
__DATA__
something
something
YYY first
something
something
YYY second
something
ABC
something
Output:
$ perl ~/monks/1223838.pl
YYY second
Hope this helps!
The way forward always starts with a minimal test.