Portál AbcLinuxu, 10. května 2025 05:31

Dotaz: sed od posledneho regexpu po koniec

30.3.2010 20:51 petzah | skóre: 1
sed od posledneho regexpu po koniec
Přečteno: 135×
Odpovědět | Admin
Mam takyto zoznam
jeden
dva
tri
tri
tri
styri
pat
chcem takyto vysledok
styri
pat
Klucove slovo v tomto pripade je 'tri', cize chcem od posledneho 'tri' az po koniec ale bez toho posledneho 'tri'

Najblizsie som sa dostal k vysledku s

sed -n '1,/tri/!p'

no tento sed vypise vratane dalsich 'tri' Vie niekto poradit ?
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

30.3.2010 21:19 petzah | skóre: 1
Rozbalit Rozbalit vše Re: sed od posledneho regexpu po koniec
Odpovědět | | Sbalit | Link | Blokovat | Admin
jedno riesenie

sed -e '1,/tri/d' -e '/tri/d'

ma niekto nieco lepsie ?
30.3.2010 23:27 deadmail
Rozbalit Rozbalit vše Re: sed od posledneho regexpu po koniec
chcem od posledneho 'tri' az po koniec ale bez toho posledneho 'tri'
To riesenie vymaze po prve tri a potom kazdy riadok s tri. Je to dobre?
jeden
dva
tri
tri
tri
*styri
tri
*pat
tri
30.3.2010 23:43 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: sed od posledneho regexpu po koniec
To ti bude fungovat iba ak /tri/ tam bude najviac raz.
If you hold a Unix shell up to your ear, you can you hear the C.
30.3.2010 23:52 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: sed od posledneho regexpu po koniec
Odpovědět | | Sbalit | Link | Blokovat | Admin
Bez cachovania do pamate sa nezaobides, pretoze nikdy nemozes rovno online vypisovat prichadzajuci text, pretoze do konca netusis ci nahodou nepride napr. na poslednom riadku /tri/ a vtedy by si nemal vypisat nic.

Takze cisto v sede:
sed -n 'H; /tri/{s/.*//;x;d}; ${g; s/^\n//;p}'
Appenduj riadok (oddeleny \n) do hold-spacu. Ak je to riadok s /tri/ tak vyprazdnit hold-space ("nic" sa vyrobi nahradenim .* za nic) a chod na dalsi riadok. Na poslednom riadku vyber hold-space, zmaz z neho uvodny \n a vypis ho.

Alebo sice nie v cistom sede a nie tak efektivne, ale elegantnejsie.
 tac | sed '/tri/Q' | tac
If you hold a Unix shell up to your ear, you can you hear the C.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.