Полное руководство по команде sort в Linux

linux

Команда sort в Linux — мощный инструмент для сортировки строк в текстовых файлах. Она позволяет упорядочивать данные в алфавитном, числовом, обратном порядке, а также по датам и другим критериям.

Основы работы с sort

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

sort file.txt


Выводит содержимое file.txt в алфавитном порядке.

Сортировка с сохранением в файл

sort file.txt > sorted_file.txt


Сохраняет отсортированные данные в новый файл.

Сортировка в обратном порядке (-r)

sort -r file.txt


Выводит строки в обратном порядке (от Z до A).


Расширенные возможности сортировки

Числовая сортировка (-n)

Если файл содержит числа, обычная сортировка может дать некорректный результат:

10  
2  
1  


Сортировка без -n:

sort file.txt
# Вывод: 1, 10, 2 (неправильно)


Сортировка с -n:

sort -n file.txt
# Вывод: 1, 2, 10 (правильно)

Сортировка по определенному столбцу (-k)

Если файл содержит табличные данные (например, CSV или лог-файлы), можно сортировать по конкретному столбцу:

Alice 25  
Bob 30  
Eve 20  


Сортировка по возрасту (2-й столбец):

sort -k 2 -n data.txt
# Вывод: Eve 20, Alice 25, Bob 30

Удаление дубликатов (-u)

sort -u file.txt


Удаляет повторяющиеся строки.

Сортировка по человекочитаемым числам (-h)

Полезно для сортировки размеров файлов (например, 1K, 2M, 1G):

ls -lh | sort -k 5 -h

Сортировка по месяцу (-M)

Если в файле есть названия месяцев (Jan, Feb, …), можно отсортировать их в хронологическом порядке:

sort -M months.txt

Полезные комбинации с другими командами

Сортировка и подсчёт уникальных строк (sort | uniq -c)

sort file.txt | uniq -c


Выводит количество вхождений каждой строки:

3 Apple  
2 Banana  
1 Orange  

Сортировка самых больших файлов (du + sort)

du -ah /path | sort -rh | head -n 10


Показывает 10 самых больших файлов/папок.

Сортировка процессов по использованию памяти (ps + sort)

ps aux --sort=-%mem | head

4. Дополнительные опции sort

ОпцияОписаниеПример
-fИгнорировать регистрsort -f file.txt
-oСохранить результат в исходный файлsort file.txt -o file.txt
-RСлучайная сортировка (shuffle)sort -R file.txt
-tУказать разделитель столбцовsort -t ',' -k 2 data.csv
-VЕстественная сортировка версийsort -V versions.txt

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

Сортировка CSV-файла по столбцу

sort -t ',' -k 3 -n data.csv


Сортирует по третьему столбцу (числа).

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

sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n iplist.txt

Сортировка дат в логах

grep "ERROR" /var/log/syslog | sort -k 3M -k 4n

🔗 Полезные ссылки


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *