Linux и UNIX: программирование в shell. Руководство разработчика
вернуться

Тейнсли Дэвид

Шрифт:

– t

Задание разделителя полей

– r

Сортировка в обратном порядке

+поз1[-поз2]

Ключом сортировки становится строка, начинающаяся в позиции

поз1 и заканчивающаяся перед позицией поз2 (или в конце текущей строки, если второй параметр не указан)*; номера полей и позиции начальных символов отсчитываются от нуля

– k поз1[, поз2]

Ключом сортировки становится строка, начинающаяся в позиции

поз1 и заканчивающаяся в позиции поз2 (или в конце текущей строки, если второй параметр не указан)

[2]

; номера полей и позиции начальных символов отсчитываются от единицы

– n

Поле с номером я не должно сортироваться; значение n отсчитывается от нуля

11.1.2. Сохранение результатов сортировки

Чтобы сохранить результаты сортировки, укажите опцию -o и выходной файл. Можно также воспользоваться традиционным методом переадресации с помощью оператора >. В следующем примере результаты сортировки сохраняются в файле results.out

$ sort video.txt > results.out

11.1.3. Тестовый файл

Ниже приведен фрагмент файла video.txt, хранящего информацию из базы данных фирмы, которая занимается прокатом видеокассет. В перечень вошли видеокассеты, которые предлагались на протяжении последнего квартала. Поля файла имеют следующее назначение:

1. Название фильма.

2. Код фирмы–дистрибьютора.

3. Количество заказов за последний квартал.

4. Количество заказов за последний год.

$ cat video.txt

Boys in Company C:HK:192:2192 Alies:HK:119:1982

The Hill:KL:63Yf972

Aliens:НК:532:4892

Star Wars:HK:301:4102

A Few Good Men:KL:445:5851

Toy Story:HK:239:3972

По умолчанию, команда sort предполагает, что разделителем полей служит один или несколько пробелов. Если же поля разделены иначе, следует применять опцию -t. В нашем файле разделителем является двоеточие. Поэтому в тех примерах, где это необходимо, задается опция -t:.

11.1.4. Индексация полей

При работе с командой sort не следует забывать, что команда обращается к первому полю как к полю 0, следующее поле имеет номер 1 и т. д. Если номера полей не указаны, вся строка считается единым полем. Обратимся к тестовому файлу и уточним, каким образом команда sort разбивает файл на поля:

Поле 0

Поле 1

Поле 2

Поле 3

Star Wars

HK

301

4102

A Few Good Men

KL

445

5851

11.1.5. Проверка факта сортировки файла

Каким образом можно узнать, отсортирован ли данный файл? Если он содержит, например, около 30 строк, то достаточно его просмотреть. А если в нем 400 строк? Примените команду sort -c, которая сама определит, отсортирован ли файл:

$ sort -с video.txt

sort: disorder on video.txt

Команда sort считает, что файл не отсортирован. Давайте отсортируем его и посмотрим, что будет:

$ sort video.txt | sort -c $

Сообщение не появилось, таким образом, файл является отсортированным.

11.1.6. Простейшая сортировка

В простейшем случае, чтобы отсортировать файл, достаточно передать его имя команде sort. Сортировка будет выполнена по строкам:

$ sort video.txt

A Few Good Men:KL:445:5851

A. Iien:HK:119:1982

Aliens:HK:532:4892

Boys in Company C:HK:192:2]92

Star Wars:HK:301:4102

The tfili:KL:63:2972

Toy Story. HK:239:3972

11.1.7. Сортировка а обратном порядке

Если необходимо отсортировать строки не по возрастанию, а по убыванию, задайте опцию -r:

$ sort -r video.txt

Toy Story:HK:239:3972

  • Читать дальше
  • 1
  • ...
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • ...

Private-Bookers - русскоязычная библиотека для чтения онлайн. Здесь удобно открывать книги с телефона и ПК, возвращаться к сохраненной странице и держать любимые произведения под рукой. Материалы добавляются пользователями; если считаете, что ваши права нарушены, воспользуйтесь формой обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • help@private-bookers.win