Jak mohu vybrat první výskyt mezi dvěma vzory, které je obsahují. Nejlépe pomocí sed
nebo awk
.
Mám:
text
something P1 something
content1
content2
something P2 something
text
something P1 something
content3
content4
something P2 something
text
Chci první výskyt řádků mezi P1 a P2 (včetně řádků P1 a P2):
something P1 something
content1
content2
something P2 something
Přijatá odpověď:
sed '/P1/,/P2/!d;/P2/q'
…udělal by práci přenosně pomocí d
odstranění všech řádků, které dělají !
nespadají do rozsahu, pak q
při prvním setkání s koncem rozsahu. Neselže pro P2 předcházející P1 a pro jednoduchý zápis nevyžaduje specifickou syntaxi GNU.
Spustit skutečné vícenásobné procesní instance terminálu Gnome?
Linux – Jak opravit/instalovat/přeinstalovat Grub?