sort
Сортировка,
объединение или проверка последовательности текстовых файлов
(POSIX)
Синтаксис:
sort [-m] [-o
имя] [-bdfinru] [-t символ]
[-k определение_ключа]
[+старый_ключ] [файл...]
sort [-c]
[-bdfinru] [-t символ] [-k определение_ключа]
[+старый_ключ]
[файл]
Поддерживаемые платформы:
QNX Neutrino,
Microsoft Windows
Опции:
-c
Проверить,
выполнена ли сортировка одиночного входного файла. Не выводить
данные.
-m
Только
объединить. Предполагается, что сортировка во входных файлах уже
выполнена.
-o имя
Аргумент имя является именем выходного файла,
используемого вместо стандартного потока вывода по умолчанию.
В качестве этого файла может использоваться один из входных
файлов.
-u
Уникальный ключ; подавить все ключи, кроме одного, в
каждом наборе строк, имеющих одинаковые ключи.
Следующие
опции переопределяют установленные по умолчанию правила
упорядочивания. Если опции упорядочивания введены независимо
от определения полей ключей, требуемые правила упорядочивания
полей применяются глобально ко всем ключам сортировки. В
случае присоединения к определенному ключу (см. опцию -k), введенные опции
переопределяют все глобальные опции упорядочивания для данного
ключа.
-b
Игнорировать
начальные пробелы при сравнении полей.
-d
Сортировать в
"словарном порядке" (dictionary order). При сравнении значащими
символами являются только пробелы и алфавитно-цифровые символы.
-f
Заменять
прописные буквы строчными.
-i
Игнорировать
все непечатаемые символы.
-k определение_ключа
Задать определение_ключа
как ключ сортировки.
-n
Интерпретировать поле как числовое значение (со
знаком и необязательным разделителем "тысячных групп").
Сортировать в цифровом порядке. Подразумевается, что указана
опция -b.
-r
Сортировать в
обратном порядке.
-t символ
Использовать символ
в качестве разделителя полей.
файл
Путевое имя сортируемого, объединяемого или
проверяемого файла. Если не задан ни один сортируемый файл,
либо если в качестве операнда файл введен символ
дефиса (-), используется
стандартный поток ввода.
+старый_ключ
Это устаревший способ определения поля ключа.
Дополнительная информация приведена далее.
Описание:
Утилита sort упорядочивает строки из набора файлов
(или из стандартного потока ввода, если файлы не
предоставлены) и объединяет вывод в заданном выходном файле
(или в стандартном потоке вывода, если выходной файл не
задан). Для утилиты sort предусмотрен
ряд опций управления сортировкой. Поведение утилиты sort по умолчанию: обрабатывать все строки
как последовательность символов, сортируемых в порядке
возрастания.
Утилита sort воспринимает файлы и содержимое файлов
следующим образом:
-
файл является
последовательностью строк;
-
строка является
последовательностью полей, заканчивающейся символом новой
строки;
-
поле является
последовательностью символов, заканчивающейся разделителем
полей;
-
по умолчанию разделителем
полей является пробел (однако разделитель можно изменить в
опции -t).
Следует учитывать особенности применения опции -t. Если эта опция не
используется, то только первый пробел в
последовательности пробелов интерпретируется как разделитель
полей, а остальные пробелы воспринимаются как часть следующего
поля. Если опция -t используется,
то каждое появление символа разделителя полей воспринимается
как окончание данного поля. Следовательно, если подряд следуют
четыре разделителя полей, они представляют три пустых поля.
Поле ключа
сортировки можно определить с помощью следующего синтаксиса:
-k начало_поля
[тип] [,конец_поля] [тип]
где начало_поля
и конец_поля определяют начало и конец поля ключа; тип
определяет атрибуты, специфичные для данного ключа.
начало_поля и конец_поля задаются
парой чисел в формате m.n, где m
соответствует началу поля после m-ного разделителя
полей в строке. Для начала_поля число .n
соответствует n-ому символу в заданном поле; если это
число не задано, оно принимается равным нулю. Для конца_поля
число .n соответствует n-ому символу после
последнего символа в заданном поле; если это число не задано,
оно принимается равным нулю.
Строковая
переменная тип может формироваться из символов bdfinr, определенные атрибуты которых
применяются в определении ключа.
Существует
другой способ (+старый_ключ) определения
ключей сортировки, оставленный по историческим причинам.
Синтаксис для этого способа:
+начало_поля
[тип] -конец_поля [тип]
Семантика остается такой же, как для опции -k.
Приведенная
ниже команда сортирует базу данных по идентификатору_группы,
затем по идентификатору_пользователя и затем по имени_пользователя:
sort -t: -k 3.0n
-k 2.0n -k 0.0d /etc/passwd
Обратите внимание, что строковая переменная тип,
присоединенная к строковой переменной поле,
используется для определения типа сравнения с данным ключом.
Вторая
строковая переменная тип предназначена
только для корректировки действия ключа_сортировки; таким образом,
значащими символами являются только i и b. Все остальные
символы игнорируются.
Примеры:
Формат
стандартного файла паролей:
имя_пользователя:пароль:идентификатор_пользователя:идентификатор_группы:разное:основной_каталог:командный_интерпретатор
Сортировка базы данных паролей по полю имя_пользователя:
sort -t: /etc/passwd
Статус завершения:
0
Сортировка
всех входных файлов выполнена успешно; либо указана опция -c и сортировка входного файла была
выполнена ранее.
1
Использовалась
опция -c, сортировка
входного файла ранее не выполнялась.
> 1
Возникла
ошибка.