Wprowadzenie do Linuxa

16 Wyrażenia regularne

Wybrane metaznaki wyrażeń rozszerzonych wyrażeń regularnych (POSIX ERE, ang. Extended Regular Expressions)
[lista] pasuje do pojedynczego znaku z danej listy
[^lista] pasuje do znaku nie podanego na liście
. (kropka) pasuje do dowolnego pojedynczego znaku
\w jest równoważne [0-9a-zA-Z] lub [[:alnum:]], czyli zastępuje dowolna literę lub cyfrę
\W oznacza to samo co $[^[[:alnum:]]]
^ i $ to odpowiednio początek i koniec linii
\< oraz \> początek i koniec słowa
Po wyrażeniu regularnym mogą stać operatory powtórzenia:
? poprzedzający element pasuje zero lub jeden raz, np. miark?a pasuje do miarka ale też miara
* poprzedzający element pasuje zero lub więcej razy, np W*in pasuje zarówno do słowa Windows jak i do Linux
+ poprzedzający element pasuje jeden lub więcej razy,
{n} poprzedzający element pasuje dokładnie n razy
| operator LUB, np. Fizyka|fizyka pasuje do fizyka oraz Fizyka
() grupowanie, np. fizy(ka|cy) pasuje zarówno do fizyka i fizycy.
Uwaga: w podstawowych wyrażeniach regularnych (POSIX BRE ang. Basic Regular Expressions) stosowanych w większości narzędzi UNIXowych metaznaki ?, +, {}, (), | tracą swoje szczególne znaczenie; zamiast nich należy użyć \?, \+, \{\}, \(\), \|.

Przykłady:
grep ’bash$’ /etc/passwd
linie w których występuje wyraz rozpoczynający się literą a lub A
grep ’^From: ’ /var/mail/$USER
lista odebranej poczty (linie rozpoczynające się słowem From:)
grep -v ’^$’ plik
wszystkie linie, które nie są puste
grep ’[0-9]\{9\}’ plik
dziewięciocyfrowe ciągi liczb, np. numery telefonów
grep ’(.\+) plik’
psuje do dowolnego ciągu składającego się przynajmniej z jednego znaku zawartego w nawiasach