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