Table of Contents
🔡 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