Regulaaravaldis Regulaaravaldis (regular expression) kirjeldab mustrit ("näidist") sõnetöötluses (näit. otsimis- ja asendusoperatsioonides). Lihtsustatud samm-sammuline definitsioon algab ühesümbolilise avaldise defineerimisega ning annab seejärel vahendid keerukamate avaldiste moodustamiseks. Ühesümboliline avaldis tavaline sümbol: a b c ... 0 1 2 ... + _ = : , erisümbol: \. \* \[ \\ \^ \$ \( \) \| . (punkt) tähenduses "suvaline sümbol" [märgid] suvaline (üks) märk loetletutest [... algus-lõpp ...] suvaline märk sellest vahemikust [^märgid] suvaline märk, mis EI kuulu loetletute hulka Iteratsioon ühesümboliline_avaldis* Null või enam korda seda ühesümbolilist avaldist Konkatenatsioon avaldis1 avaldis2 Avaldis rea alguses ^avaldis Avaldis rea lõpus avaldis$ Näit. [a-zA-Z][a-zA-Z0-9]* - identifikaator (lihtsustatud) ^\.$ - täpselt ühest punktist koosnev rida Käsk grep grep [-lipud] regexp [failinimi... ] Otsida tekstifaili(de)st read, mis rahuldavad antud regulaarset avaldist ("vastavad etteantud mustrile"). Vaikimisi on sisendiks standardsisend, väljundiks standardväljund. Regulaaravaldis on soovitav kirjutada ülakomade vahele, et segadust metamärkidega (näit. tärn) vältida. Lipud: -v - vastupidine, s.t. väljastada read, mis EI vasta mustrile -c - ridade asemel näidata ainult nende arv -l - näidata ainult nende failide nimed ühekordselt, milles leidub sobivaid ridu -n - näidata ka reanumbreid -i - ignore case - lugeda suur- ja väiketähed samaks -s - silent - tulemust ei väljastata, töötatakse välja ainult lõpetamiskood (0 - leidus, 1 - ei leidunud, 2 - viga) Näit. grep -i 'Jaanus' aruanne* grep -c \. tekst (kas annab punktide arvu tekstis?) Käsk find find kataloog ... tingimused Kataloogi(de)ga määratakse alampuu(d), millest otsida tingimusi rahuldavaid faile. Peab olema õigus otsida. Tingimused ühendatud loogiliste tehete abil, tühik tähendab konjunktsiooni. Tingimused: tingimus1 tingimus2 - konjunktsioon tingimus1 -atingimus2 - sama tingimus1 -o tingimus2 - disjunktsioon \( tingimus \) - sulud täpsustamiseks ! tingimus - eitus Arvuliste argumentide tõlgendus: +n - rohkem kui n -n - vähem kui n n - täpselt n Konkreetsed tingimused puudutavad faili (kataloogi) nime, tüüpi, õigusi, viidete arvu, suurust, loomis- jm. aegu, omanikku jpms. Elementaarsed tingimused: -name failinimi - konkreetse nimega -name 'mitmene_nimi' - näidis -print - väljastab tulemuse (tee) nende failide jaoks, mis rahuldavad EELNEVAID tingimusi (tavaliselt viimane) -type [fdbc ... ] - tüüp: f - tavaline fail, d - kataloog, b c - seadmed, ... -perm kaheksandkood - õigused -links arv - viitade arv -user nimi - omanik -size arv [c] - suurus (c- sümbolites) -atime arv - access time (päevades) -mtime arv - modification time (päevades) -ctime arv - loomisaeg -newer failinimi - muudetud hiljem kui antud faili -exec käsk \; - täita käsk, jooksva faili nimeks kasutada {} -ok käsk\; - täita käsk loa küsimisega Näit. find . -name 'a*' \print find / \( -user jaan -o -user juku \) -print -ok rm {} \; find / -perm 666 \print find / -size +10000c -atime +5 -ok rm {} \;