Введение в Unix



         

Поиск строк в файле по образцу (grep)


Утилита grep осуществляет поиск по одному или нескольким файлам и печатает все строки, содержащие предъявленный образец текста, на стандартном выводе.

В простейшем случае образец задается постоянной строкой знаков. В общем же случае он задается регулярным выражением (grep - акроним от global regular expression printer).

Пример:

$ grep Henry admpeople hardpeople softpeople Softpeople: Henry Morgan 112 $ или

$ grep Henry *people Softpeople: Henry Morgan 112 $

Ключ -v (invert) предписывает печать всех строк, кроме найденных, например:

$ grep -v "Henry Morgan" Softpeople Bill Williams 100 Mary Clark 101 $

Двойные кавычки требуются для размещения в образце пробелов.

Регулярные выражения позволяют вести поиск типа: найти все слова из четырех букв, начинающиеся на d, или все слова, кончающиеся на able, и тому подобное. Рассмотрим примеры задания образцов посредством регулярных выражений.

Знаки ^ и $ помечают начало и конец строки соответственно:

"^Genesis" - найти все строки, начинающиеся словом Genesis;

"eschatus$" - найти все строки, кончающиеся словом eschatus;

"^Out in cold$" - найти все строки, равные образцу.

Точка помечает любую букву:

"d..." - найти все слова из 4 букв, начинающиеся с d;

"d...$" - то же в конце строки;

"d..\ ." - найти все слова из 4 букв, начинающиеся с d и оканчивающиеся точкой

(знак \ - обратный слэш - отменяет специальное значение следующего символа).

Квадратные скобы задают возможные значения знака:




Содержание  Назад  Вперед