Linux poskytuje grep
pro filtrování textu. V některých situacích však můžeme potřebovat rozšířenější nástroj pro porovnání daného vzoru v daných textových souborech. Tento nástroj se nazývá Extended Global Regular Expression Print
nebo jednoduše egrep
. egrep
poskytuje rozšířené funkce oproti běžnému nástroji grep
.
Syntaxe příkazu egrep
je následující.
egrep FLAG REGEX FILE
- `FLAG` slouží ke změně některých chování příkazu `egrep`.
- `REGEX` je vzor, který chceme vyhledávat ve formátu regex.
- `FILE` je název souboru, ve kterém budeme vyhledávat
Normální vyhledávání
Pomocí egrep
můžeme vyhledávat normální text bez zadání regulárního výrazu. Stačí, když zadáme výraz, který chceme vyhledat. V tomto příkladu budeme hledat ismail
v souboru s názvem /etc/passwd
.
$ egrep ismail /etc/passwd
Dohledat řádky obsahující číselné znaky
Číselné znaky můžeme zadat pomocí , což znamená jednu z číselných hodnot od 0 do 9. V tomto příkladu budeme hledat v souboru s názvem
/etc/passwd
.
$ egrep ''/etc/passwd
Match Lines Contains Alphabet Characters
Můžeme také zadat znaky abecedy pomocí pro malé znaky a
pro velké znaky. V tomto příkladu budeme porovnávat velká písmena.
$ egrep ''/etc/passwd
Match All Lines Starting with Alphabet
Můžeme porovnávat začátky řádků pomocí znaku ^
. V tomto příkladu budeme hledat všechny řádky, kde začíná znak alfa.
$ egrep '^' myinput.py
Match All Lines Ending with Numeric
Konec řádku můžeme určit pomocí znaku $
. Následující příkaz vypíše všechny řádky, které končí číselným znakem.
$ egrep '$' myinput.py
Match Caseinsenstive
egrep
je ve výchozím nastavení case senstive. Rozlišování malých a velkých písmen znamená, že velké a malé znaky se budou lišit, například A
se liší od a
. Pokud chceme, můžeme naši shodu učinit caseinsensitive pomocí možnosti -i
jako příznaku. Následující příklad bude odpovídat všem následujícím slovům
- IsmaiL
- ismAIL
- ISMAIL
$ egrep -i 'ismail' myinput.py
.