Kodomo

Пользователь

Учебная страница курса биоинформатики,
год поступления 2013

Основы регулярных выражений для `grep`

Примеры и дополнения (А.Злобин)

Регулярные выражения для grep - не то же самое, что маски файлов для интерпретатора командной строки!

Например, grep -E 'ORGANISM_*SIENTIFIC' <имя файла> найдет все строки, в которых слова ORGANISM и SIENTIFIC соединены любым числом подчеркиваний (ORGANISM_SIENTIFIC, ORGANISM____SIENTIFIC, ORGANISMSIENTIFIC и т.п.)

Команда ls ORGANISM_*SINTIFIC покажет все файлы, в которых вместо "*" стоит любое число символов (ORGANISM_SINTIFIC, ORGANISM_xyzSINTIFIC и т.п.)

Вопрос: Как находить в текстовом файле строки, удовлетворяющие определенному условию, а не просто содержащие данное подслово?

Ответ: В grep реализованы три диалекта для т.н. регулярных выражений: базовый, расширенный и perl.

Рекомендуемый диалект - расширенный. Для его включения необходимо задать опцию -E:

grep -E <регулярное выражение>  <файл>

Регулярным выражением являются

Можно указать требуемую кратность регулярного выражения

Последовательно идущие регулярные выражения, возможно, с кратностями, значат, что все они должны встретиться в указанном порядке Например,

grep -E 'COMPND.*YES' 1khl.pdb

найдет все строки, в которых есть слова COMPND и YES, а между ними - любое количество символов

Привязка регулярного выражения к началу или концу строки: