🔡 sort: кратко и по делу#

sort — утилита для сортировки строк и файлов в Linux.
Поддерживает числовую, текстовую, обратную сортировку, работу по ключам, полям, датам, размеру, IP‑адресам и CSV‑файлам.


📝 Топ‑20 ключевых флагов и приёмов sort#

  • sort file.txt — стандартная сортировка строк.
  • sort -r file.txt — сортировка в обратном порядке.
  • sort -n file.txt — сортировка по числам.
  • sort -nr file.txt — обратная числовая сортировка.
  • sort -h file.txt — сортировка “читаемых человеком” размеров (1K, 2M, 3G).
  • sort -u file.txt — сортировка + удаление дублей.
  • sort -k 2 file.txt — сортировка по второму полю.
  • sort -k 2,2 file.txt — сортировка только по второму полю.
  • sort -k 3 -n file.txt — числовая сортировка по третьему столбцу.
  • sort -t, -k 2 file.csv — указать разделитель, например, для CSV.
  • sort -M months.txt — сортировка по месяцам (Jan, Feb, …).
  • sort -V versions.txt — сортировка по версиям (v1.2, v1.10).
  • sort -f file.txt — игнорировать регистр.
  • sort -b file.txt — игнорировать пробелы в начале строк.
  • sort --random-sort file.txt — случайная перестановка строк.
  • sort -S 50% file.txt — использовать 50% RAM для ускорения.
  • sort --parallel=4 file.txt — параллельная сортировка.
  • sort -c file.txt — проверить, отсортирован ли файл.
  • sort -C file.txt && echo OK — проверить и вывести “OK” при успехе.
  • sort --debug file.txt — показать, как сортируются строки.

🚀 Айсберг команд sort — от базового к гуру#

🟢 Уровень 1 — База (разогрев)#

sort names.txt

  • Сортировка строк в алфавитном порядке

sort -r names.txt

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

sort -f names.txt

  • Игнорировать регистр букв

sort -u names.txt

  • Сортировать и удалить дубли

sort -b names.txt

  • Игнорировать начальные пробелы

🟡 Уровень 2 — Работа с числами#

sort -n numbers.txt

  • Числовая сортировка

sort -nr numbers.txt

  • Обратная числовая сортировка

sort -g numbers.txt

  • Числовая сортировка с поддержкой экспонент (1e3)

sort -h sizes.txt

  • Сортировка читаемых размеров (1K, 2M, 3G)

sort -V versions.txt

  • Версионная сортировка (v1.2, v1.10)

🟠 Уровень 3 — Сортировка по столбцам#

sort -k 2 data.txt

  • Сортировка по второму столбцу

sort -k 2,2 data.txt

  • Сортировка только по второму полю

sort -k 3 -n data.txt

  • Числовая сортировка по третьему столбцу

sort -t"," -k 2 data.csv

  • Сортировка CSV по второму полю

sort -t":" -k 1 /etc/passwd

  • Сортировка по имени пользователя

🔵 Уровень 4 — Даты, месяцы, версии#

sort -M months.txt

  • Сортировка по названию месяцев (Jan, Feb, …)

sort -k 3.7,3.10 date.txt

  • Сортировка по году из формата DD-MM-YYYY

sort -k 3.4,3.5n date.txt

  • Сортировка по месяцу

sort -k 3.1,3.2n date.txt

  • Сортировка по дню

sort -V changelog.txt

  • Сортировка версий (v1.2 < v1.10)

🟣 Уровень 5 — Продвинутая фильтрация#

sort --unique data.txt

  • То же, что sort -u

sort -k 2 | uniq -c

  • Считать уникальные значения второго столбца

sort data.txt | uniq

  • Сначала сортировать, потом убрать дубли

sort -t"," -k3 data.csv | column -t -s,

  • Сортировка CSV и красивое выравнивание

sort -k 2 data.txt | head -10

  • Топ‑10 значений по второму столбцу

🔴 Уровень 6 — Гуру‑режим#

sort --parallel=8 bigfile.txt

  • Использовать 8 потоков

sort -S 75% bigfile.txt

  • Использовать 75% доступной RAM

sort -u -o sorted.txt data.txt

  • Сортировать и сохранить в новый файл

sort -c data.txt || echo "Ошибка сортировки"

  • Проверить правильность сортировки

sort --random-sort data.txt

  • Перемешать строки случайным образом

🟤 Уровень 7 — Автоматизация и интеграция#

cat data.txt | sort | uniq -c | sort -nr

  • Топ‑значений с подсчётом частоты

grep "error" logs.txt | sort | uniq -c | sort -nr

  • Топ‑ошибок из логов

awk -F"," '{print $3}' data.csv | sort -n | uniq -c

  • Подсчёт уникальных значений в CSV

find /var/log -type f | sort

  • Сортировка списка файлов

ps aux | sort -k3nr | head -10

  • Топ‑10 процессов по загрузке CPU

🧩 Бонус — практические сценарии#

Сортировка IP‑адресов:

sort -t. -k1,1n -k2,2n -k3,3n -k4,4n ip_list.txt

Сортировка логов по времени:

sort -t" " -k4 logs.txt

Сортировка CSV по цене:

sort -t"," -k3,3n products.csv

Проверить, что файл отсортирован:

sort -c data.txt

Случайная выборка 5 строк:

sort --random-sort file.txt | head -5