Skip to content

Команда sort

Описание

Команда sort используется для сортировки строк в текстовых файлах или стандартном вводе. Она может: - Сортировать данные лексикографически (по алфавиту) - Сортировать числа - Удалять повторяющиеся строки - Сортировать по определённым столбцам - Работать с пользовательскими разделителями

Это особенно полезно при обработке логов, CSV-файлов, списков и других структурированных данных.


Синтаксис

sort [опции] [файл(ы)]

или

команда | sort [опции]

Примеры использования

1. Сортировка содержимого файла

sort список.txt

Выведет отсортированный список на экран.

2. Сортировка чисел

sort -n числа.txt

Отсортирует числа по возрастанию.

3. Обратная сортировка

sort -r список.txt

Сортировка в обратном порядке (от Z до A или от большего к меньшему).

4. Удаление дубликатов

sort -u список.txt

Или:

sort -d список.txt

Уберёт повторяющиеся строки.

5. Сортировка по конкретному столбцу

sort -k 2,2 студенты.csv

Отсортирует данные по второму столбцу.

6. Сортировка с пользовательским разделителем

sort -t ',' -k 3 оценки.csv

Указывает запятую как разделитель и сортирует по третьему столбцу.

7. Сортировка и сохранение результата в файл

sort список.txt > отсортированный_список.txt

или

sort список.txt -o отсортированный_список.txt

Полезные опции

Опция Описание
-n, --numeric-sort Сортировать как числа
-r, --reverse Обратный порядок сортировки
-u, --unique Оставить только уникальные строки
-d, --dictionary-order Сортировать только буквы и цифры (игнорировать спецсимволы)
-f, --ignore-case Игнорировать регистр
-i, --ignore-nonprinting Игнорировать невидимые символы
-k, --key=POS1[,POS2] Сортировать по указанному диапазону столбцов
-t, --field-separator=SEP Задать пользовательский разделитель полей
-o, --output=FILE Сохранить результат в указанный файл
-c, --check Проверяет, отсортирован ли файл
-m Объединяет уже отсортированные файлы

Примеры с опциями

1. Сортировка по числу в 3-м столбце

sort -t ' ' -k 3,3n файл.txt

Разделитель — пробел, сортировка по 3-му столбцу как число.

2. Проверить, отсортирован ли файл

sort -c файл.txt

Если файл не отсортирован — выведет сообщение об ошибке.

3. Сортировка с игнорированием регистра

sort -f список.txt

Полезные заметки

  • По умолчанию sort использует лексикографический порядок, который может отличаться от численного.
  • Для больших файлов sort может использовать временные файлы и много памяти.
  • Часто комбинируется с другими утилитами: bash cut -d ',' -f 2 файл.csv | sort -u

Альтернативы

Инструмент Когда использовать
awk Если нужно выполнять сложную обработку перед сортировкой
uniq Для подсчёта и удаления дубликатов после сортировки
perl / python Для сложной сортировки с логикой
datamash Для математических операций над данными после сортировки

Пример работы

Создадим тестовый файл люди.txt:

echo -e "Иван 25\nОльга 30\nПетр 20" > люди.txt

Отсортируем по имени:

sort люди.txt

Отсортируем по возрасту:

sort -k 2,2n люди.txt

Результат:

Петр 20
Иван 25
Ольга 30

Полезные команды в связке

cat файл.txt | sort | uniq -c | sort -nr

Посчитает частоту встречаемости строк и отсортирует по убыванию.