Portál AbcLinuxu, 12. května 2024 05:53


Dotaz: BASH pozice podřetězce

20.12.2008 23:36 Zmije
BASH pozice podřetězce
Přečteno: 610×
Odpovědět | Admin

Zdravim. Marně hledám způsob jak zjistit v řetězci pozici podřetězce např. budu mít řetězec "Konecne*jsou vanoce." a já chci zjistit na jaké pozici je slovo jsou, pokud nic nenajde, aby vrátil 0 nebo v tomto případě 9.

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

21.12.2008 00:52 moira | skóre: 30 | blog: nesmysly
Rozbalit Rozbalit vše Re: BASH pozice podřetězce
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jen otazka - musi to byt pouze BASH? Pouziti awk, perl neni mozne?
Překladač ti nikdy neřekne: "budeme kamarádi"
21.12.2008 00:58 Zmije
Rozbalit Rozbalit vše Re: BASH pozice podřetězce

Perl ne, awk možný je, ale upřednostňuji regulární výrazy.

21.12.2008 01:13 mikky | skóre: 25 | blog: Ghlog | M. L. - Praha
Rozbalit Rozbalit vše Re: BASH pozice podřetězce
Odpovědět | | Sbalit | Link | Blokovat | Admin

perl ne, awk ano, preference regexpů...hmm, která škola?;) protože co se pamatuju, tak zatim většině cvičících na většině univerzit a fakult bylo úplně jedno, jestli to bude awk, sed, grep, bash, perl, nebo cokoliv jinýho...

Bash umí vrátit délku řetězce a umí taky odseknout podřetězec.. pak by stačilo třeba zjistit délku řetězce, odseknout, zjistit délku odseknutého podřetězce a odečíst - obejdeš se bez regexpů a dokonce ani nebudeš muset spouštět další proces.

-m.

Je vám méně než 30 ? (jsme vrstevnící => budeme si tykat) : (jsem pro vás bažant => můžete mi tykat);
21.12.2008 01:35 Zmije
Rozbalit Rozbalit vše Re: BASH pozice podřetězce

tohle není do školy, to si hraju s jedním routerem, je na něm málo místa a perl tam není, jinak škola fekt vut, takže podle toho moje programování vypadá :)

21.12.2008 02:12 mikky | skóre: 25 | blog: Ghlog | M. L. - Praha
Rozbalit Rozbalit vše Re: BASH pozice podřetězce

aha, tak to řeknu hned, ne?:)

str="nazdar pepo, pepo ty stary brachu"
param="pepo"
str=${str%%${param}*}
result=${#str}

 

Dva %% udělají první výskyt, jeden % by pak udělal pozici posledního výskytu - je to celý v bashi. Ale esli je to router, tak si nejdřív ověř, jestli je tam opravdu BASH a ne třeba nějaký busybox, nebo něco podobnýho - busybox třeba některý tyhle vychytávky umět nemusí...

-m.
 

PS. psáno v polospánku :) funguje to, ale netvrdim, že je to ideální řešení...

 

Je vám méně než 30 ? (jsme vrstevnící => budeme si tykat) : (jsem pro vás bažant => můžete mi tykat);
21.12.2008 02:22 Zmije
Rozbalit Rozbalit vše Re: BASH pozice podřetězce
Odpovědět | | Sbalit | Link | Blokovat | Admin

díky, něco takového jsem hledal, testovat to ale budu až dnes dopoledne :)

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.