Команда 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— указание разделителя.
Используйте эти возможности для эффективной работы с файлами и выводами команд!
Было ли это полезно?
0 / 0