2016-09-26 1 views
2

это мой пример:Как извлечь строки между m-го и n-м случаем строки?

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 

И есть тег «полевка» - мне нужно, чтобы иметь возможность извлекать строки, например между вторым и третьим вхождение тега. Как я могу это сделать ?

Также извините за язык образца.

ответ

1

Вы можете использовать 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 
+1

работает отлично, большое объяснение - спасибо! –

1

Awk можно сделать с помощью:

awk 'begin{ n=0; } /^POLÉVKA:/ { n++; } { if (n==2) print $0 }' sample.txt 
Смежные вопросы