Сортировка файлов в Linux: руководство по утилите sort

Утилита sort в Linux используется для сортировки содержимого файлов. Рассмотрим основные возможности и параметры команды.

Создание и сортировка текстового файла

Создадим текстовый файл animals.txt с помощью редактора nano:

nano animals.txt

Добавим в него следующие строки:

cat
dog
elephant
monkey
bear

Сохраним файл (Ctrl+X, Y, Enter).

Отсортируем содержимое файла командой:

sort animals.txt

Результат: строки будут отсортированы в алфавитном порядке: bear, cat, dog, elephant, monkey.

Для обратной сортировки используем параметр -r:

sort -r animals.txt

Результат: строки будут отсортированы в обратном алфавитном порядке.

Сохранение результатов в файл

Для сохранения отсортированных данных в новый файл используем параметр -o:

sort -o sorted.txt animals.txt

Это создаст файл sorted.txt с отсортированными данными, animals.txt останется неизменным.

Сортировка чисел

Создадим файл numbers.txt с помощью nano и добавим в него следующие числа:

1000
24
5
10
24

Попробуем отсортировать его:

sort numbers.txt

Результат: числа будут отсортированы лексикографически, а не как числа. Для числовой сортировки используем параметр -n:

sort -n numbers.txt

Результат: числа будут отсортированы в числовом порядке.

Сохранение результата в файл:

sort -n -o sorted_numbers.txt numbers.txt

Перенаправление вывода

Альтернативный способ сохранения результата — перенаправление стандартного вывода с помощью оператора >:

sort -n numbers.txt > sorted.txt

Уникальные значения

Параметр -u (или —unique) оставляет только уникальные значения:

sort -n -u numbers.txt

Результат: дубликаты чисел будут удалены.

Объединение параметров

Параметры можно комбинировать. Например, для обратной сортировки уникальных чисел:

sort -n -r -u numbers.txt

Утилита sort предоставляет мощные средства для сортировки содержимого файлов, позволяя управлять порядком сортировки (по возрастанию или убыванию), типом данных (строки или числа), а также сохранять результат в отдельный файл или использовать перенаправление вывода.

Что будем искать? Например,программа