Fórum Root.cz

Hlavní témata => Software => Téma založeno: loscar 21. 06. 2010, 10:40:41

Název: Výběr začátku řetězce s programem sed
Přispěvatel: 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
Název: Re: Výběr začátku řetězce s programem sed
Přispěvatel: deadmail 21. 06. 2010, 22:24:10
Pokial sa nepouzije ssed (super-sed) podporujuci Perl regexp (.*?), tak sa to da riesit nejakou obklukou:
Kód: [Vybrat]
echo "ahojslovoxyzslovo" | sed -r 's/slovo/qqqqqqqqqq/;s/^.*q{10}/slovo/'
Název: Re: Výběr začátku řetězce s programem sed
Přispěvatel: deadmail 22. 06. 2010, 06:07:22
Da sa to urobit aj bez zarazky (tych 10 q, alebo lubovolny iny retazec nevyskytujuci sa v texte):

Kód: [Vybrat]
echo "ahojslovoxyzslovo" | sed -r '/slovo/{:a;s/^slovo/&/;t;s/.slovo/slovo/;ta}'
Název: Re: Výběr začátku řetězce s programem sed
Přispěvatel: Fantomas 22. 06. 2010, 08:41:34
S tim grep to funguje treba takhle:
echo 'Hello World' | sed '/W/!d'
Název: Re: Výběr začátku řetězce s programem sed
Přispěvatel: deadmail 22. 06. 2010, 16:50:44
lenze v otazke je prepinac -o