Использование программы:
sort [option]... [file]...
Программа sort сравнивает, объединяет, сортирует вводной поток и
выда©т результат на устройство стандартного вывода. В качестве вводного
потока может использоваться один или несколько файлов или устройство
стандартного ввода. Программа имеет три режима работы: режим сортировки
(умолчание), режим слияния, режим проверки отсортирован файл или нет.
Переключение в режим слияния и проверки производится следующими параметрами.
Несколько замечаний о характере сортировки.
Если определены ключевые поля, по которым производится сортировка, то программа сравнивает каждую пару полей в соседних строках в том порядке, в котором это определено в командной строке с уч©том параметров упорядочивания, до того как будет встречено различие либо строки вводного потока═будут исчерпаны.
Если определены любые глобальные параметры сортировки из списка Mbdfinr, но не определены ключевые поля, то программа будет сравнивать полные строки.
Программа GNU sort не имеет ограничений на длину вводной строки или на значения байтов, которые составляют вводную строку. Если возникла любая ошибка, программа завершается с кодом 2. Если установлена переменная окружения TMPDIR, то sort будет использовать это значение как имя каталога, в котором будут располагаться временные файлы. По умолчанию используется имя каталога /tmp. Параметр -T tmpdir, в свою очередь, устанавливает новое значение имени каталога для временных файлов вне зависимости от значения переменной окружения TMPDIR.
Нижеследующие параметры влияют на упорядочивание выводных строк. Они могут быть определены глобально или как часть определ©нного ключевого поля. Если никаких ключевых полей не используется, то глобальные параметры воздействуют на сравнение полных строк. В противном случае глобальные параметры наследуются ключевыми полями, которые не определяют никаких своих специальных параметров.
Имеются и другие параметры.
Позиция внутри строки определяется в форме F.C, где F - номер поля, а C - есть номер символа в поле (слева направо), с которого начинается сортировочный ключ (если +pos). Если имеет место -pos, то отсч©т производится с конца поля. Если C опущено, то подразумевается первый символ поля. Если определ©н параметр -b, то часть C отсчитывается от первого непробельного символа данного поля (если +pos или от первого непробельного символа следующего за предыдущим полем для -pos. Сортировочный ключ может иметь свои параметры сортировки Mbdfinr. В этом случае глобальные параметры сортировки не применяются к данному полю. Параметр -b может быть использован отдельно и независимо для случаев +pos и -pos. Если параметр -b наследуется из глобальных параметров, то он используется во всех случаях. Ключи могут включать несколько полей. Ниже смотрите примеры сортировки.
Отсортировать численно в обратном порядке (в сторону уменьшения значения чисел):
ps | sort -rn
вы получите список ваших процессов упорядоченный по номеру процесса,
максимальный номер будет вверху.
Отсортировать в алфавитном порядке опустив при этом первые 10 полей.
ps ux | sort -k 11
вы получите упорядоченный по алфавиту по 11-ому полю (имя программы в RedHat 5.1)
список.
Отсортировать по алфавиту файл /etc/passwd по второй букве поля комментариев, а
с одинаковыми вторыми символами отсортировать по первой букве
sort -t : -k 5.2,5.2 -k 5.1,5.1 /etc/passwd
Заметим, что если написать не 5.2,5.2, а просто 5.2, то в качестве сортировочного
ключа будет взято пятое поле начиная с символа 2 (напомним, нумерация начинается с
1).
Отсортировать по алфавиту файл /etc/passwd по полю пять игнорируя лидирующие
пробелы, а═поля с равными значениями сортировать по числовому значению в сторону
уменьшения по полю 3
sort -t : -k 5b,5 -k 3,3rn /etc/passwd
Заметим, что запись -5b,5 означает произвести сортировку по полю 5. Если
написать просто -5b, то в качестве ключа сортировки будет
использована часть строки начиная с поля 5 до конца строки.
Наконец, чтобы игнорировать как лидирующие пробелы в поле, так и замыкающие пробелы
поля, можно записать
sort -t : -k 5b,5b -k 3,3rn /etc/passwd
или использовать глобальный параметр -b
sort -t : -b -k 5,5 -k 3,3rn /etc/passwd