Lekce 7 - textové nástroje a regulární výrazy
Textové nástroje
- textové editory mcedit, joe, ed, vi
- výstup celého souboru cat, tac, nl, od, more, less, tee
- výstup části souboru head, tail, split, cut, paste
- zpracování po řádcích sort, grep, egrep, sed, uniq
- zpracování po znacích tr
- porovnávání obsahu cmp, diff, patch
- sumarizace wc, sum, md5sum
- programovací jazyk awk (Alfred Aho, Peter Weinberger, Brian Kernighan)
Regulární výrazy - regexp, RE
- vzorek pro porovnání s řetězcem (NENÍ to maska pro shellovskou expanzi jmen)
- vyhodnocuje program
- existují standardní (grep) a rozšířené (egrep)
vyhodnocení
- vyhodnocují se zleva
- rozlišují a/A
- jsou hladové (žravé)
- mají paměť
- používají řídící znaky (znak '\' někdy ruší a někdy přidává řídící význam následujícího)
sestavení
- jednoznakový RE:
- konstantní znak 'a'
- libovolný znak '.'
- 1 znak z množiny '[aeiouy]'
- řetězení 'abc' ... 3 jednoznakové RE v tomto pořadí
- ukotvení '^' '$' '\<' '\>'
- paměť '\(RE\)' '\1'
- kvantifikace '\{min,max\}' ... předchozí RE musí být min-krát až max-krát
- '*' ... '\{0,\}
- '+' ... '\{1,\}
- '?' ... '\{0,1\}
- třídy znaků [[:alpha:]] [[:digit:]] [[:alnum:]] [[:lower:]] ]]:upper:]] [[:space:]]
- rozšíření RE - např. operátor '|'egrep '(Jan|Petr)'