-
Shell a regularni vyrazy
Asi sem uplne slepej, ale jak fungujou regularni vyrazy v shellu? Prosel sem kde co, ale zatim sem nabyl dojmu, ze shell nenabizi vsechny moznosti jako napr. grep. Jde mi konkretne o moznost opakovani. Zkousel sem priklady z www.guides.sk/regvyr/all.html, ale bohuzel v shellu mi to nejak nefunguje. Dejme tomu, ze chci mit retezec: [jedna nebo dve cislice, dvojtecka, jedna nebo dve cislice]. [0-9]\{1,2\}:[0-9]\{1,2\} ani [0-9]{1,2}:[0-9]{1,2} proste shell (konkretne prikaz case) nebere. V manu k bashi sem pouzel nasel to, ze po zadani prikazu: shopt -s extglob muzu pouzit konstrukci: ?([0-9]), coz ale znamena 0 nebo jeden vyskyty. Samozrejme muzu zapsat: ?([0-9])[0-9] : ?([0-9])[0-9], ale jak to udelat napr. pro 20 vyskytu? Prece to musi jit nejak elegantneji. Predem moc dik
-
To slysim prvne ze bash sam o sobe umi regexp :eek:
IMHO to nejde a jestli jo tak jen v nekterych bashich (ja tam napr o shopt nemam ani zminku). A to ani nemluvim ze ne kazdy pouziva bash, ze ;)
Proc nepouzijes univerzalneji standardni grep, egrep, fgrep ... ?
-
No pokud vim, tak grep apod. slouzi k vyhledavani v souborech. Me se ale jedna o tohle: mam promennou v shellu a potrebuju zjistit, jestli vyhovuje danymu reg. vyrazu. Tohle grep umi? No jak tak koukam, tak lepsi reseni by asi bylo v perlu, co?
-
Tak "echo $premenna | grep ...", nie?
-
Jen pripomenu ze jeste existuje awk kterym se ted cely vikend morim ;D
a k tomu: http://hal.csd.auth.gr/thelug/faqs/gawk.html (vytisknuty to ma 234 stran a svazani v copy general se studentskou slevou stoji cca 130 KC ;D )
-
No jeste mi chvili trvalo, jak do dostat do IFu a je to teda takhle:
if [ $(echo $prom | grep [0-9]\{1,2\}:[0-9]\{1,2\}) ]
then
neco
fi
No pro dnesek uz radsi koncim. Asi mi monitor vyzaruje vice nez je zdravo. ;D Kazdopadne vsem moc dik.