Регулярные выражения

Регулярные выражения (regexp или regex ) — это механизм, используемый, например, утилитами sed и awk для анализа и обработки текста (потокового или в файлах). В регулярных выражениях существует две группы символов - метасимволы (цифры, буквы), классы символов и спецсимволы, используемые для создания шаблонов при анализе текста.

Спецсимволы

[ ] - перечень символов или диапазон символов (диапазон - с дефисом)
\ - экранирование спецсимволов для их интерпретации в качестве обычных
/ - разделитель
^ - начало строки
$ - конец строки
. - любой символ, кроме переводов строки
| - разделитель двух паттернов, логическое ИЛИ
? - предыдущий символ встречается в строке не более одного раза (в т.ч. ни разу)
* - предыдущий символ встречается в строке любое количество раз (в т.ч. ни разу)
+ - предыдущий символ встречается в строке один или более раз
( ) - группировка символов в один паттерн
{ } - количество вхождений предшествующего символа (точное или диапазон)

Классы символов:

[[:alpha:]] — соответствует любому алфавитному символу, записанному в верхнем или нижнем регистре.
[[:alnum:]] — соответствует любому алфавитно-цифровому символу, а именно — символам в диапазонах 0-9, A-Z, a-z.
[[:blank:]] — соответствует пробелу и знаку табуляции.
[[:digit:]] — любой цифровой символ от 0 до 9.
[[:upper:]] — алфавитные символы в верхнем регистре — A-Z.
[[:lower:]] — алфавитные символы в нижнем регистре — a-z.
[[:print:]] — соответствует любому печатаемому символу.
[[:punct:]] — соответствует знакам препинания.
[[:space:]] — пробельные символы, в частности — пробел, знак табуляции, символы NL, FF, VT, CR.

Примеры
# /home/tux/testfile

this is a test
This is a test
this is the test
where is the test?
test it now
test number 123

awk '/This/{print $0}' testfile - поиск слова This и вывод соответствующей строки
awk '/this/{print $0}' testfile - поиск слова this и вывод соответствующей строки
awk '/[Tt]his/{print $0}' testfile - поиск слова this или This вывод соответствующей строки
awk '/^where/{print $0}' testfile - вывод строк, в которых первым словом является where.
awk '/test$/{print $0}' testfile - вывод строк, в которых последним словом является test.
awk '/\?/{print $0}' testfile - вывод строк, в которых есть вопросительный знак (он экранирован символом \).
awk '/[[:digit:]]/{print $0}' testfile - вывод строк, в которых есть цифры.