В настоящее время актуальный стандарт - это POSIX 2008 и его дополнение POSIX 1003.13 |
Средства обработки структурированных данных
sort [-m] [-o выходной_файл] [-bdfinru] [-t символ] [-k определение_ключа] ... [файл ...] sort -c [-bdfinru] [-t символ] [-k определение_ключа] [файл]
в зависимости от заданных опций выполняет одно из трех возможных действий:
- сортировку строк всех исходных файлов с записью результата в выходной файл;
- слияние всех исходных (предварительно отсортированных ) файлов с записью результата в выходной файл;
- проверку того, что единственный исходный файл действительно отсортирован.
При упорядочении используется один или несколько ключей сортировки, выделяемых из каждой вводимой строки. По умолчанию ключ сортировки один - вся строка, а порядок является лексикографическим.
Следующие опции управляют порядком работы утилиты sort.
-c
Проверить, является ли (единственный) исходный файл уже отсортированным. В выходной файл ничего не записывается, результат работы определяется по коду завершения (0 - успешное завершение, 1 - данные в файле не упорядочены должным образом, больше единицы - зафиксирована ошибка).
-m
Слияние исходных файлов, которые предполагаются отсортированными.
-o выходной_файл
Результат направляется не на стандартный вывод, а в выходной_файл, который может совпадать с одним из исходных.
-u
Опция уникальности: из всех совпадающих строк выводить только одну, при наличии опции -c контролировать отсутствие строк с совпадающими ключами сортировки.
Следующие опции изменяют подразумеваемый способ сравнения. Если они употреблены независимо от определения ключей сортировки, то диктуемые ими правила действуют глобально, на все ключи.
-d
"Словарный" порядок: при сравнении являются значимыми только буквы, цифры и пробельные символы.
-f
При сравнении преобразовывать малые буквы в большие.
-i
При сравнении игнорировать непечатные символы.
-n
Числовое сравнение. Ограничить ключ сортировки начальной числовой цепочкой, которая может содержать пробельные символы, знак минус, цифры, символ основания системы счисления и разделители тысяч.
-r
Заменить результат сравнения на противоположный.
Следующие опции изменяют трактовку разделителей полей.
-b
Игнорировать начальные пробельные символы при определении начала и конца ключей сортировки. Если опция -b указана перед первой опцией -k, она воздействует на все ключи, снабженные опцией -k.
-t символ
Использовать заданный символ как разделитель полей. Разделитель не является частью поля (хотя и может входить в ключ сортировки ). Каждое вхождение разделителя значимо, т. е. два рядом стоящих разделителя ограничивают пустое поле. В отсутствие опции -t подразумеваемыми разделителями становятся пробельные символы, точнее, максимальная непустая последовательность таких символов, а в поле включаются предшествующие ему разделители.
Ключи сортировки определяются с помощью опции -k. Определение ключа имеет следующий формат:
начало_поля[тип][,конец_поля[тип]]
Ключевое поле охватывает все позиции - от начальной до конечной, которые задаются, соответственно, как
номер_поля[.первый_символ] номер_поля[.последний_символ]
Тип - это один из модификаторов b, d, f, i, n, r. Модификатор b ведет себя аналогично опции -b, но применяется только к той границе ключа, после которой он указан. Остальные модификаторы также аналогичны одноименным опциям, но воздействуют на ключ в целом.
Если указано несколько ключей сортировки (согласно стандарту, реализацией должно поддерживаться по крайней мере девять вхождений опции -k ), то более поздние используются только в случае равенства более ранних. Если значения ключей сортировки двух строк совпадают, строки упорядочиваются с учетом всех символов.