3. Význam metaznaků

Příkaz grep lze v základní podobě použít s argumentem hledaného výrazu bez metaznaků. Jedná se o tzv. plain match, kdy dochází k vyhledání zadaného výrazu kdekoliv v každém řádku vstupu.



Metaznak ^ zajistí vyhledávání regulárního výrazu na začátku řádky.



Metaznak $ zajistí vyhledávání regulárního výrazu na konci řádky.



Metaznak . nahrazuje libovolný jeden znak.



Metaznaky [ ] slouží pro definici znaků a znakových tříd.

znaky
význam
[abc]
sada vybraných znaků
[^abc]
negace sady vybraných znaků, tzn. všechny ostatní než uvedené
[a-e]
sada znaků daná rozsahem
[^a-e]
negace sady znaků dané rozsahem, tzn. všechny ostatní než uvedený rozsah

znaková třída

význam
[:alpha:]
písmena [A-Za-z]
[:lower:]
malá písmena [a-z]
[:upper:]
velká písmena [A-Z]
[:digit:]
číslice [0-9]
[:alnum:]
alfanumerické znaky [A-Za-z0-9]
[:word:]
alfanumerické znaky a podtržítko [A-Za-z0-9_]
[:blank:]
mezera atabelátor [ \t]
[:space:]
  neviditelné znaky [ \t\r\n\v\f]
[:punct:]
  interpunkční znaménka [-!"#$%&'()*+,./:;<=>?@[\\\]^_`{|}~]
[:xdigit:]
  hexadecimální číslice [A-Fa-f0-9]



Metaznaky ?, *, +, { } patří mezi tzv. kvantifikátory. Udávají počet výskytů předchozího uvedeného regulárního výrazu.

kvantifikátor význam
? výraz se nevyskytuje nebo maximálně jednou
* výraz se nevyskytuje nebo vícekrát
+ výraz se vyskytuje minimálně jednou
{n} výraz se vyskytuje přesně n-krát
{n,} výraz se vyskytuje minimálně n-krát
{,m} výraz se vyskytuje maximálně m-krát
{n,m} výraz se vyskytuje minimálně n-krát a maximálně m-krát



Metaznak | slouží pro alternaci více definovaných regulárních výrazů.



Metaznaky ( ) slouží pro definici skupin regulárních výrazů. Na jednotlivé skupiny se lze v rámci zadaného výrazu odkazovat pomocí tzv. zpětných referencí (back references), které jsou indexovány od čísla jedna v pořadí, jak jsou definovány jednotlivé skupiny regulárních výrazů. Indexu zpětné reference vždy předchází únikový metaznak (zpětné lomítko).



Metaznak \ je tzv. únikový metaznak. Slouží pro potlačení či vyvolání obvyklé funkce různých metaznaků (viz rozdíl mezi BRE a ERE v úvodu této kapitoly). Příkladem použití jsou výše uvedené ukázky s příkazy grep a egrep.