Portál AbcLinuxu, 12. května 2024 05:53
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.
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.
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á :)
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í...
díky, něco takového jsem hledal, testovat to ale budu až dnes dopoledne :)
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.