Примеры использования утилиты sort
sort - UNIX‐ утилита, сортирует содержимое указанных файлов, с учётом установленной в среде переменных локализации.
Утилиту sort можно использовать для сортировки текста из одного или нескольких файлов или c помощью нее может быть выполнена сортировка вывода linux для какой-либо команды, например использования утилиты sort для обнаружения DoS-атак.
Параметры запуска:
- -b, –ignore-leading-blanks игнорировать начальные пропуски
- -d, –dictionary-order рассматривать только пропуски, буквы и цифры
- -f, –ignore-case игнорировать регистр букв
- -i, –ignore-nonprinting рассматривать только печатные знаки
- -n, –numeric-sort сравнивать численные значения строк
- -h, –human-numeric-sort сравнивать численные значения с учетом сокращения степени (2K, 1G)
- -r, –reverse обратить результаты сравнения; обратный порядок
- -u, –unique с -c, проверять порядок строго; без -c, выводить только первое среди нескольких равных
- -c, –check проверять, сортированы ли входные файлы; не сортировать
- -k, –key=Поз1[,Поз2] начинать ключ в Поз1 и завершать на Поз2 (отсчет от 1)
- -o, –output=ФАЙЛ выводить в ФАЙЛ, а не на стандартный вывод
- -t, –field-separator=РАЗДЕЛИТЕЛЬ использовать при поиске ключевых полей РАЗДЕЛИТЕЛЬ, а не переход от непробельных знаков к пробельным
Принципы, по которым команда sort linux сортирует строки
- Строки с цифрами размещаются выше других строк
- Строки, начинающиеся с букв нижнего регистра размещаются выше
- Сортировка выполняется в соответствии алфавиту
- Строки сначала сортируются по алфавиту, а уже вторично по другим правилам.
Пример сортировки и обратной сортировки
Прямая сортировка файл, по принципам описанным выше, происходит по умолчанию. Просто вызовите команду sort и укажите нужный файл. Например, мы хотим отсортировать по алфавиту файл служб Linux (/etc/services), который хранит информацию о многочисленных службах, которые клиентские приложения могут использовать на компьютере. Внутри файла services находятся имя службы, номер порта и протокол, который он использует, и любые применимые псевдонимы.
$ sort /etc/services acr-nema 104/tcp dicom # Digital Imag. & Comm. 300 afbackup 2988/tcp # Afbackup system afbackup 2988/udp afmbackup 2989/tcp # Afmbackup system afmbackup 2989/udp afpovertcp 548/tcp # AFP over TCP afs3-bos 7007/tcp # basic overseer process afs3-bos 7007/udp afs3-callback 7001/tcp # callbacks to cache managers ...
Для обратной сортировки используйте ключ r, команда будет выглядеть так:
$ sort -r /etc/services
Сортировка по колонке и по нескольким полям
В этом примере мне нужно вывести все лог файлы и отсортировать их по колонке с названием месяца. Колонка указывается опцией -k, номер колонки для вывода команды ls седьмой. Итого получим такую команду для запуска:
$
ls -l /var/log/ | sort -k7 ... drwxr-xr-x 2 root root 4096 Sep 5 2019 openvpn -rw-r----- 1 root adm 14721 Mar 6 18:47 vsftpd.log.2 -rw------- 1 root root 10723 Mar 6 23:53 dovecot.log.2.gz -rw-r----- 1 root adm 281146 Mar 6 23:59 fail2ban.log.2.gz -rw-r----- 1 syslog adm 1190971 Mar 7 00:00 auth.log.2.gz
Для сортировки по числовому значению используется опция -n:
$ ls -l /var/log/ | sort -nk6
Мы можем сортировать данные по нескольким полям, например, отсортируем вывод ls по второму первично и вторично девятому полях:
$ ls -l /var/log/ | sort -t "," -nk2,5 -k9
Использование sort для удаления дубликатов
Команда sort Linux позволяет не только сортировать строки, но и удалять дубликаты, для этого есть опция -u.
$ sort -u yourfile.txt
Или такой вариант
$ cat old.txt | sort | uniq > new.txt
Читайте также
📌 Для тестирования скриптов, установщиков VPN, Python ботов рекомендуем использовать надежные VPS на короткий срок. Если вам нужна помощь с более сложными задачами, вы можете найти фрилансера, который поможет с настройкой. Узнайте больше о быстрой аренде VPS для экспериментов и о фриланс-бирже для настройки VPS, WordPress. 📌
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Китайский VPN Shadowsocks простая установка и настройка
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах