Fórum Root.cz
Hlavní témata => Software => Téma založeno: loscar 21. 06. 2010, 10:40:41
-
Dobry den,
chtel bych se zeptat jak se resi pomoci sedu situace kdy potrebuji regularnim vyrazem vybrat zacatek retezce az do prvniho vyskytu nejakeho slova.
Potreboval bych prikaz v sedu ktery provadi to same co grep -o 'slovo.*'
Predem dekuji za odpoved.
loscar
-
Pokial sa nepouzije ssed (super-sed) podporujuci Perl regexp (.*?), tak sa to da riesit nejakou obklukou:
echo "ahojslovoxyzslovo" | sed -r 's/slovo/qqqqqqqqqq/;s/^.*q{10}/slovo/'
-
Da sa to urobit aj bez zarazky (tych 10 q, alebo lubovolny iny retazec nevyskytujuci sa v texte):
echo "ahojslovoxyzslovo" | sed -r '/slovo/{:a;s/^slovo/&/;t;s/.slovo/slovo/;ta}'
-
S tim grep to funguje treba takhle:
echo 'Hello World' | sed '/W/!d'
-
lenze v otazke je prepinac -o