如何提取第 m 次和第 n 次出现的字符串之间的行?

How can I extract lines between m-th and n-th occurence of string?

这是我的样本:

POLÉVKA:  Silný vývar z hovězího žebra s masem a zeleninou, vlasové nudle  
ŘÍZEČKY z KUŘECÍCH PRSÍČEK obalované v bylinkovém těstíčku smažené na slunečnicovém oleji podávané s mléčnou bramborovou kaší, šopský salátek  
ŠPAGETY AGLIO OLIO prohozené s parmskou šunkou a domácím bazalkovým pestem se sušenými  rajčaty, hoblinky parmazánu  
Restovaná KUŘECÍ JATÝRKA se šalotkou a masovou slaninou zakápnutá červeným vínem, hranolky, domácí tatarská omáčka 

POLÉVKA:  Ruský boršč se zakysanou smetanou  
PEČENÉ KUŘE z českého chovu na čerstvém másle s kořenovou zeleninou a divokým kořením, vařený brambor, švestkový kompot  
SPECIALITA: Vídeňská HOVĚZÍ ROŠTĚNÁ z mladého býčka sypaná čerstvým křenem a smaženou cibulkou, pečené brambory, hořčičná omáčka  
NUDLIČKY z vepřové kýty po SEČUANSKU s křupavou čerstvou zeleninou, jasmínová rýže  
Šagety „PASTICIANA“ podávané s nudličkami z HOVĚZÍHO PUPKU restované na šalotce a červeném víně s tomaty, hoblinky parmazánu  
Filírované KUŘECÍ PRSÍČKO na variaci trhaných salátových listů a čerstvé zeleniny s dresinkem z bílého jogurtu a modrého sýra, celozrnné pečivo  

POLÉVKA: Šumavská bramboračka  
GULÁŠEK „PRAZDROJ“ z HOVĚZÍ KLIŽKY s  ½ houskovým knedlíkem a ½ bramboráčky zdobený kulatou feferonkou  

还有一个标签 "POLÉVKA" - 我需要能够提取标签的第二次和第三次出现之间的行。我该怎么做?

也很抱歉样本的语言。

Awk 可以用:

awk 'begin{ n=0; } /^POLÉVKA:/ { n++; } { if (n==2) print [=10=] }' sample.txt

你可以使用这个 awk:

awk '/^POLÉVKA/{c++} c==2; c>2{exit}' file

POLÉVKA:  Ruský boršč se zakysanou smetanou
PEČENÉ KUŘE z českého chovu na čerstvém másle s kořenovou zeleninou a divokým kořením, vařený brambor, švestkový kompot
SPECIALITA: Vídeňská HOVĚZÍ ROŠTĚNÁ z mladého býčka sypaná čerstvým křenem a smaženou cibulkou, pečené brambory, hořčičná omáčka
NUDLIČKY z vepřové kýty po SEČUANSKU s křupavou čerstvou zeleninou, jasmínová rýže
Šagety „PASTICIANA“ podávané s nudličkami z HOVĚZÍHO PUPKU restované na šalotce a červeném víně s tomaty, hoblinky parmazánu
Filírované KUŘECÍ PRSÍČKO na variaci trhaných salátových listů a čerstvé zeleniny s dresinkem z bílého jogurtu a modrého sýra, celozrnné pečivo

工作原理:

/^POLÉVKA/{c++} # if "POLÉVKA" is found at start of a line increment counter c
c==2            # if c==2 then print the line using default awk action
c>2{exit}       # when c>2 then exit