Great fleas have little fleas
upon their backs to bite 'em,
And little fleas have lesser fleas,
and so ad infinitum.
And the great fleas themselves, in turn,
have a greater fleas to go on;
While these again have greater still,
and greater still, and so on.
.
w poem 263
q
$
Начнем с первой команды, которая подсчитывает число строк, слов и символов в одном или нескольких файлах и называется wc
по одной из ее функций — подсчета слов ("word counting"):
$ wc poem
8 46 263 poem
$
т.е. в файле poem
восемь строк, 46 слов и 263 символа. Определение "слова" весьма просто — любая последовательность символов, не содержащая пробела, символа табуляции или перевода строки. Команда wc
произведет подсчет более чем в одном файле (и сообщит итог) и при необходимости "умолчит" о любом счетчике, см. wc(1)
.
Вторая команда, grep
, отыскивает в файлах строки, которые подходят под шаблон (ее имя происходит от имени команды редактора ed g/ regular-expression /p
, которая объясняется в приложении 1). С помощью этой команды можно найти слово "fleas"
в файле 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
and greater still, and so on
$
Команду tail
можно использовать и для вывода файла, начиная с указанной строки:
$ tail +3 filename
файл будет печататься с третьей строки (обратите внимание на естественное изменение знака у аргумента).
Последняя пара команд предназначена для сравнения файлов. Допустим, имеется вариант файла poem
с именем new_poem
:
$ cat poem
Great fleas have little fleas
upon their backs to bite 'em,
And little fleas have lesser fleas,
and so ad infinitum.
And the great fleas themselves, in turn,
have greater fleas to go on;
While these again have greater still,
and greater still, and so on.
$ cat new_poem
Great fleas have little fleas
upon their backs to bite them,
And little fleas have lesser fleas,
and so on ad infinitum.
Читать дальше
Конец ознакомительного отрывка
Купить книгу