Команда sort
в Linux — это мощный инструмент для сортировки данных в файлах или выводе других команд. Она позволяет упорядочивать строки в алфавитном, числовом или пользовательском порядке, а также удалять дубликаты и сортировать по нескольким критериям.
В этой статье мы разберём основные возможности sort
с примерами использования.
Основы работы с sort в Linux: синтаксис и простые примеры
Синтаксис
sort [опции] [файл]
Если файл не указан, sort
обрабатывает стандартный ввод (например, вывод другой команды через конвейер |
).
Примеры использования
Сортировка содержимого файла
sort file.txt
Выведет строки из file.txt
в алфавитном порядке.
Сортировка вывода другой команды
ls | sort # сортирует список файлов
Удаление повторяющихся строк: опция -u для уникальности
Опция -u
(unique) оставляет только уникальные строки:
sort -u file.txt
Пример:
Допустим, есть файл names.txt
:
Alice Bob Alice Charlie
После выполнения:
sort -u names.txt
Вывод:
Alice Bob Charlie
Числовая сортировка (-n) и обратный порядок (-r)
По умолчанию sort
сравнивает строки лексикографически (по алфавиту). Для числовой сортировки используйте -n
:
sort -n numbers.txt
Пример:
Файл numbers.txt
:
10 2 5 1
Без -n
:
sort numbers.txt
Вывод (неправильный порядок!):
1 10 2 5
С -n
:
sort -n numbers.txt
Вывод:
1 2 5 10
Обратная сортировка (-r
)
Чтобы получить порядок от большего к меньшему:
sort -nr numbers.txt
Вывод:
10 5 2 1
Сортировка по столбцам: ключ -k и разделители (-t)
Если данные представлены в табличной форме (например, CSV или TSV), можно сортировать по определённому столбцу.
Пример файла students.csv
:
Alice,95,Math Bob,88,Physics Charlie,92,Chemistry
Сортировка по второму столбцу (оценкам):
sort -t "," -k 2 -n students.csv
Вывод:
Bob,88,Physics Charlie,92,Chemistry Alice,95,Math
Разбор команды:
-t ","
— указывает разделитель (запятая).-k 2
— сортировка по второму столбцу.-n
— числовая сортировка.
Сортировка по нескольким столбцам
sort -t "," -k 3,3 -k 2,2n students.csv
Сначала сортирует по предмету (3-й столбец), затем по оценке (2-й столбец).
Продвинутые примеры: сортировка IP, длины строк и многокритериальная сортировка
Сортировка по длине строки
cat file.txt | awk '{ print length, $0 }' | sort -n | cut -d" " -f2-
Сортировка IP-адресов
sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n ips.txt
Заключение
Команда sort
— это гибкий инструмент для обработки текстовых данных в Linux. Основные опции:
-u
— уникальные строки.-n
— числовая сортировка.-r
— обратный порядок.-k
— сортировка по столбцам.-t
— указание разделителя.
Используйте эти возможности для эффективной работы с файлами и выводами команд!
Was this helpful?
0 / 0