Portál AbcLinuxu, 10. května 2025 05:31
jeden dva tri tri tri styri patchcem takyto vysledok
styri patKlucove 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 ?
sed -e '1,/tri/d' -e '/tri/d'
ma niekto nieco lepsie ?
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
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
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.