UNIX — универсальная среда программирования | страница 22



в файле >poem:

>$ grep fleas poem

>Great fleas have a little fleas

>And little fleas have lesser fleas,

>And the great fleas themselves, in turn,

> have greater fleas to go on;

>$

Команда >grep может также отыскивать строки, которые не соответствуют шаблону, если используется флаг >-v. (Флаг назван по имени команды редактора >ed; действие флага можно представить как инвертирование условия соответствия шаблону.)

>$ grep -v fleas poem

> upon their backs to bite 'em,

> and so ad infinitum.

>While these again have greater still,

> and greater still, and so on.

>$

Команду >grep можно использовать для поиска в нескольких файлах: в таком случае она будет выдавать имя файла перед каждой строкой, подходящей под шаблон, что позволяет найти место, где произошло сопоставление. Существуют также флаги для нумерации строк и т.д. Команда может применяться и для сопоставления с более сложными шаблонами, чем >"fleas", но об этом речь пойдет в гл. 4.

Далее рассмотрим команду >sort, которая сортирует/входные данные в алфавитном порядке последовательно строку за строкой. Выполним сортировку для файла poem, что не очень интересно, но зато наглядно:

>$ sort poem

> and greater still, and so on.

> and so ad infinitum,

> have greater fleas to go on;

> upon their backs to bite 'em,

>And little fleas have lesser fleas,

>And the great fleas themselves, in turn,

>Great fleas have little fleas

>While these again have greater still,

>$

Сортируются все строки, и по умолчанию вначале следуют строки, начинающиеся с пробела, за ними — начинающиеся с прописных букв, затем — со строчных букв, так что здесь не выдерживается строго алфавитный порядок.

У команды >sort есть множество флагов для управления порядком сортировки: обратным, числовым, словарным, с игнорированием начальных пробелов, с сортировкой полей внутри строки и т.п., но, конечно, нужно изучить эти флаги, чтобы уверенно пользоваться ими. Приведем несколько наиболее употребительных флагов:

>sort -rОбратный порядок
>sort -nЧисловой порядок
>sort -nrОбратный числовой порядок
>sort -fНе учитывать различие прописных и строчных букв
>sort +nНачать сортировку с поля >n+1

В гл. 4 приводится дополнительная информация о команде >sort.

Следующая команда для работы с файлом — >tail; она выдает 10 последних строк файла. Этого более чем достаточно для файла >poem и полезно для больших файлов. В команде есть флаг, указывающий число выдаваемых строк, так что для печати последней строки файла poem можно задать:

>$ tail -1 poem