Perl oneliner가 있습니다.
echo -e 'sla\ndfjAAAAk\nsaljdfla\nsjdfBBBBsadf\njasdf' | perl -E 'my $_ = do { local $/; <> }; say join qq!\n!, m!\QAAAA\E\K(.*?)(?=\QBBBB\E)!gs'
k
saljdfla
sjdf
작동하지만 다음 출력이 필요합니다.
dfjAAAAk
saljdfla
sjdfBBBBsadf
따라서 "from" 및 "to"뿐만 아니라 "AAAA" 및 "BBBB"도 포함하는 행이 필요합니다. 어떻게 해야 하나요?
답변1
당신이 원하는범위운영자. 파일을 "먹을" 필요도 없습니다.
STR='sla\ndfjAAAAk\nsaljdfla\nsjdfBBBBsadf\njasdf'
echo -e ${STR} | perl -nE 'm{^dfjAAAAk}..m{^sjdfBBBB} and print'
dfjAAAAk
saljdfla
sjdfBBBBsadf