файл имеет
sub TC1
{
check(CLEANUP_SUB=>\&cleanup1);
check(CLEANUP_SUB=>\&cleanup2);
check(CLEANUP_SUB=>\&cleanup3);
endcase
}
sub TC2
{
check(CLEANUP_SUB=>\&cleanup4);
check(CLEANUP_SUB=>\&cleanup5);
check(CLEANUP_SUB=>\&cleanup6);
endcase();
}
Ожидаемый вывод
\&cleanup1
\&cleanup2
\&cleanup3
Я хочу, чтобы весь шаблон после / sub TC1 / до первого появления / endcase /
perl -0777 -ne 'if(/sub\sTC1/){while(/CLEANUP_SUB\s*=>([^),;]+)/g){print "$&\n";}}' file
Вывод
\&cleanup1
\&cleanup2
\&cleanup3
\&cleanup4
\&cleanup5
\&cleanup6