tgoop.com/linuxcamp_tg/318
Create:
Last Update:
Last Update:
Приводим хаос данных к порядку
Сегодня мы говорим о команде sort. Утилита выводит текстовые строки в определенном порядке. С помощью нее может быть отсортировано содержимое файла либо вывод какой-либо команды. Основные опции можете просмотреть на OpenNet.
Примеры использования
Создадим файл с несколькими строками, на котором и будем проверять возможности утилиты. Кста, заполнить его из CMD можно вот так:
$ echo -e "computer\nmouse\nLAPTOP\ndata" > test.txt
$ cat test.txt
computer
mouse
LAPTOP
data
Опция "-e" указывает команде, что нужно обрабатывать спецсимволы, а "\n" у нас - спецсимвол перевода строки. Теперь выполним сортировку строк:
$ sort test.txt
computer
data
LAPTOP
mouse
После выполнения команды сам файл никак не поменяется: sort просто получает на вход данные с ресурса и итог кидает в stdout. Посмотрим на несколько принципов, по которым выполняется сортировка:
- Строки с цифрами размещаются выше других строк
- Строки, начинающиеся с букв нижнего регистра размещаются выше
- Сортировка выполняется в соответствии алфавиту
- Строки сначала сортируются по алфавиту, а уже вторично по другим правилам.
Удаление дубликатов
100% полезная опция "-u". Она удаляет дубликаты. Представьте, вам нужно проверить логи в "/var/log/syslog", которые туда посылает образный "демон". Если он пишет туда много одинаковых, вероятно, вам не нужен лишний спам. Для предварительной очистки вывода используйте "-u":
$ sort -u /var/log/syslog
Сортировка по колонке
Давайте упорядочим вывод по конкретному полю. Для этого указываем флаг "-k" с номером колонки. Сейчас будем работать с названиями каталогов:
$ ls -l | sort -k9
... 6 user user 4096 дек 6 14:29 Android
... 3 user user 4096 янв 14 22:18 Desktop
... 5 user user 12288 янв 15 14:59 Downloads
... 7 user user 4096 янв 13 11:42 Lightworks
Сортировка по номеру
Входные данных также можем отсортировать по числовому значению. Для этого используем "-n":
$ ls -l | sort -nk2
... 5 user user 12288 янв 15 14:59 Downloads
... 6 user user 4096 дек 6 14:29 Android
... 7 user user 4096 июн 10 2015 Sources
... 8 user user 12288 янв 11 12:33 Pictures
LinuxCamp | #utils
BY LinuxCamp | DevOps
Share with your friend now:
tgoop.com/linuxcamp_tg/318
