НАЗВАНИЕ
sort - сортировка и/или слияние файлов
СИНТАКСИС
sort [-c] [-m] [-u] [-o выходной_файл] [-yкилобайт] [-zдлина] [-d] [-f] [-i] [-M] [-n] [-r] [-b] [-tразделитель] [+позиция_1 [-позиция_2]] [файл ...]
ОПИСАНИЕ
Команда sort сортирует строки, входящие во все исходные
файлы, и выдает результат на стандартный вывод. Если
имена файлов не указаны, или в качестве файла указан -,
исходная информация поступает со стандартного ввода.
При упорядочении используется один или несколько ключей сортировки, выделяемых из каждой вводимой строки. По умолчанию ключ сортировки один - вся строка, а порядок является лексикографическим, соответствующим принятой кодировке символов.
Следующие опции изменяют стандартный порядок работы:
Следующие опции позволяют выбрать нужный способ сравнения:
Если опции, задающие способ сравнения, указаны до ограничений на ключи сортировки, то они применяются глобально ко всем ключам. Если же соответствующие флаги ассоциированы с определенными ключами сортировки (см. ниже), они воздействуют только на "свои" ключи.
Полем называется минимальная последовательность символов, за которой следует разделитель полей или перевод строки. По умолчанию символом-разделителем считается пробел или символ табуляции. Пробелы и табуляции сразу вслед за разделителем (если они есть) принадлежат следующему полю. Все пробелы в начале строки входят в первое поле. На трактовку разделителей влияют следующие опции:
При наложении ограничения на ключ сортировки указывается позиция начала ключа (+позиция_1) и позиция сразу за концом ключа (-позиция_2). Если опция -позиция_2 отсутствует, ключ занимает весь остаток строки.
Позиция_1 и позиция_2 задаются как пара m.n, возможно, с последующими флагами bdfiMnr. Начальная позиция задается как +m.n, что означает (n+1)-ый символ в (m+1)-ом поле (поля и символы нумеруются с единицы). Отсутствие .n означает .0, то есть первый символ (m+1)-го поля. Если указан флаг b, то n отсчитывается от первого непробела в (m+1)-ом поле; +m.0b означает первый непробел в (m+1)-ом поле.
Позиция за концом ключа записывается как -m.n, что означает (n+1)-ый символ (включая разделители) после последнего символа m-го поля. Если .n опущено, то подразумевается .0, то есть разделитель после m-го поля. Если указан флаг b, то n отсчитывается от первого непробела в (m+1)-ом поле.
Если указано несколько ключей сортировки, то более поздние используются только в случае равенства более ранних. Если значения ключей сортировки двух строк совпадают, строки упорядочиваются с учетом всех символов.
ПРИМЕРЫ
sort +1 -2 f1
sort -r -o f4 +1.0 -1.2 f2 f3
sort -r +1.0b -1.1b f5 f6
sort -t: +2n -3 /etc/passwd
sort -um +2 -3 f7
ФАЙЛЫ
/usr/tmp/stm???
СМ. ТАКЖЕ
comm(1), join(1), uniq(1).
ДИАГНОСТИКА
При возникновении различных ошибок (например, строка
слишком длинная) и при обнаружении нарушений порядка
при запуске с опцией -c в стандартный протокол выдается
соответствующее сообщение и сортировка завершается с
ненулевым кодом.
Если в последней строке файла пропущен символ возврата каретки, то он добавляется автоматически, о чем выдается предупреждение.
ПРЕДОСТЕРЕЖЕНИЯ
Не гарантируется сохранение порядка следования строк с
равными ключами.
Не оговаривается приоритет различных способов сравнения (например, числового и словарного), поэтому задавать комбинацию флагов dMn не имеет смысла.
/spellhist "исторический" файл /usr/lib/spell/spellprog программа
СМ. ТАКЖЕ
deroff(1), sed(1), sort(1), tee(1).
eqn (1), tbl (1), troff (1) в руководстве DOCUMENTER'S
WORKBENCH Software 2.0 Technical Discussion and Reference Manual.
СЮРПРИЗЫ
Эталонный список неполон; при новых реализациях, возможно, возникнет желание несколько месяцев обрабатывать
выход системы, чтобы собрать отдельные добавления;
обычно они помещаются в отдельный файл, который добавляется в хэшированный эталонный список через spellin.