Команда sort в Linux

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

В этой статье мы разберём основные возможности sort с примерами использования.




Основы работы с sort в Linux: синтаксис и простые примеры

Синтаксис

Bash
sort [опции] [файл]

Если файл не указан, sort обрабатывает стандартный ввод (например, вывод другой команды через конвейер |).

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

Сортировка содержимого файла

Bash
sort file.txt

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

Сортировка вывода другой команды

Bash
ls | sort  # сортирует список файлов

Удаление повторяющихся строк: опция -u для уникальности

Опция -u (unique) оставляет только уникальные строки:

Bash
sort -u file.txt

Пример:
Допустим, есть файл names.txt:

Alice
Bob
Alice
Charlie

После выполнения:

Bash
sort -u names.txt

Вывод:

Alice
Bob
Charlie

Числовая сортировка (-n) и обратный порядок (-r)

По умолчанию sort сравнивает строки лексикографически (по алфавиту). Для числовой сортировки используйте -n:

Bash
sort -n numbers.txt

Пример:
Файл numbers.txt:

10
2
5
1

Без -n:

Bash
sort numbers.txt

Вывод (неправильный порядок!):

1
10
2
5

С -n:

Bash
sort -n numbers.txt

Вывод:

1
2
5
10

Обратная сортировка (-r)

Чтобы получить порядок от большего к меньшему:

Bash
sort -nr numbers.txt

Вывод:

10
5
2
1

Сортировка по столбцам: ключ -k и разделители (-t)

Если данные представлены в табличной форме (например, CSV или TSV), можно сортировать по определённому столбцу.

Пример файла students.csv:

Alice,95,Math
Bob,88,Physics
Charlie,92,Chemistry

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

Bash
sort -t "," -k 2 -n students.csv

Вывод:

Bob,88,Physics
Charlie,92,Chemistry
Alice,95,Math

Разбор команды:

  • -t "," — указывает разделитель (запятая).
  • -k 2 — сортировка по второму столбцу.
  • -n — числовая сортировка.

Сортировка по нескольким столбцам

Bash
sort -t "," -k 3,3 -k 2,2n students.csv

Сначала сортирует по предмету (3-й столбец), затем по оценке (2-й столбец).


Продвинутые примеры: сортировка IP, длины строк и многокритериальная сортировка

Сортировка по длине строки

Bash
cat file.txt | awk '{ print length, $0 }' | sort -n | cut -d" " -f2-

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

Bash
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

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