sort

Сортировка, объединение или проверка последовательности текстовых файлов (POSIX)

Синтаксис:

sort [-m] [-o имя] [-bdfinru] [-t символ] [-k определение_ключа] [+старый_ключ] [файл...] 
sort [-c] [-bdfinru] [-t символ] [-k определение_ключа] [+старый_ключ] [файл]

Опции:

-c
Проверить, выполнена ли сортировка одиночного входного файла. Не выводить данные.
-m
Только объединить. Предполагается, что сортировка во входных файлах уже выполнена.
-o имя
Аргумент имя является именем выходного файла, используемого вместо стандартного потока вывода по умолчанию. В качестве этого файла может использоваться один из входных файлов.
-u
Уникальный ключ; подавить все ключи, кроме одного, в каждом наборе строк, имеющих одинаковые ключи.

Дополнительные опции:

Следующие опции переопределяют установленные по умолчанию правила упорядочивания. Если опции упорядочивания введены независимо от определения полей ключей, требуемые правила упорядочивания полей применяются глобально ко всем ключам сортировки. В случае присоединения к определенному ключу (см. опцию -k), введенные опции переопределяют все глобальные опции упорядочивания для данного ключа.

-b
Игнорировать начальные пробелы при сравнении полей.
-d
Сортировать в "словарном порядке" (dictionary order). При сравнении значащими символами являются только пробелы и алфавитно-цифровые символы.
-f
Заменять прописные буквы строчными.
-i
Игнорировать все непечатаемые символы.
-k определение_ключа
Задать определение_ключа как ключ сортировки.
-n
Интерпретировать поле как числовое значение (со знаком и необязательным разделителем "тысячных групп"). Сортировать в цифровом порядке. Подразумевается, что указана опция -b.
-r
Сортировать в обратном порядке.
-t
символ Использовать символ в качестве разделителя полей.
файл
Путевое имя сортируемого, объединяемого или проверяемого файла. Если не задан ни один сортируемый файл, либо если в качестве операнда файл введен символ дефиса (-), используется стандартный поток ввода.
+старый_ключ
Это устаревший способ определения поля ключа. Дополнительная информация приведена далее.

Платформы:

ЗОСРВ «Нейтрино»

Целевые архитектуры:

aarch64, arm, armv7, e2k, mips, ppc, x86

Описание:

Утилита sort упорядочивает строки из набора файлов (или из стандартного потока ввода, если файлы не предоставлены) и объединяет вывод в заданном выходном файле (или в стандартном потоке вывода, если выходной файл не задан). Для утилиты sort предусмотрен ряд опций управления сортировкой. Поведение утилиты sort по умолчанию: обрабатывать все строки как последовательность символов, сортируемых в порядке возрастания.

Утилита sort воспринимает файлы и содержимое файлов следующим образом:

Следует учитывать особенности применения опции -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
Возникла ошибка.

Классификация:

Базовые подсистемы ЗОСРВ «Нейтрино», POSIX

Тематические ссылки:

diff, grep, sed, tsort




Предыдущий раздел: Утилиты