К основному контенту

Команда sort в Linux

Сегодня мы поговорим о команде sort. Это утилита для вывода текстовых строк в определенном порядке. Проще говоря, для сортировки. Ее можно использовать для сортировки текста из одного или нескольких файлов или c помощью нее может быть выполнена сортировка вывода linux для какой-либо команды. Это может быть полезно во многих случаях. Например, отсортировать файлы по размеру в выводе команды du или собрать частотность использования команд из истории.

В этой инструкции мы подробно рассмотрим возможности команды sort Linux, ее опции и разберем несколько примеров использования.

Содержание статьи: Синтаксис Опции Примеры использования sort 1. Сортировка 2. Обратная сортировка 3. Сортировка по колонке 4. Сортировка по номеру 5. Удаление дубликатов 6. Сортировка по нескольким полям Синтаксис

Уже по традиции подобных статей, сначала рассмотрим общий синтаксис команды:

$ sort опции файл

Или

$ команда | sort опции Опции

Теперь рассмотрим основные опции утилиты sort. -b - не учитывать пробелы -d - использовать для сортировки только буквы и цифры -i - сортировать только по ASCII символах -n - сортировка строк linux по числовому значению -r - сортировать в обратном порядке -с - проверить был ли отсортирован файл -o - вывести результат в файл -u - игнорировать повторяющиеся строки -m - объединение ранее отсортированных файлов -k - указать поле по которому нужно сортировать строки, если не задано, сортировка выполняется по всей строке. -f - использовать в качестве разделителя полей ваш символ вместо пробела.

Я понимаю, что многое из всего этого может быть непонятно, но на примерах все станет намного яснее. Примеры использования sort

Наконец-то мы добрались к теме примеры sort Linux. Давайте сначала создадим файл с несколькими строками, на котором и будем проверять возможности утилиты.

nano test.txt

computer mouse LAPTOP data RedHat laptop debian laptop

Также можно воспользоваться вот такой командой:

echo -e "computer\nmouse\nLAPTOP\ndata\nRedHat\nlaptop\ndebian\nlaptop" > test.txt

Опция -e указывает команде, что нужно обрабатывать спецсимволы, а \n, если кто не знает, не что иное как спецсимвол перевода строки в Linux.

1. Сортировка

Теперь давайте выполним сортировку строк linux в нашем файле:

sort test.txt

computer data debian laptop laptop LAPTOP mouse RedHat

Вот несколько принципов, по которым команда sort linux сортирует строки: Строки с цифрами размещаются выше других строк Строки, начинающиеся с букв нижнего регистра размещаются выше Сортировка выполняется в соответствии алфавиту Строки сначала сортируются по алфавиту, а уже вторично по другим правилам.

2. Обратная сортировка

Отсортируем файл в обратном порядке:

sort -r test.txt

RedHat mouse LAPTOP laptop laptop debian data computer

3. Сортировка по колонке

Отсортируем вывод команды ls по девятой колонке, то есть по имени файла или папки. Колонку укажем опцией -k:

ls -l | sort -k9

drwxr-xr-x 6 user user 4096 дек 6 14:29 Android drwx------ 3 user user 4096 янв 14 22:18 Desktop drwxr-xr-x 12 user user 4096 янв 14 21:49 Documents drwx------ 5 user user 12288 янв 15 14:59 Downloads drwxr-xr-x 7 user user 4096 янв 13 11:42 Lightworks

Сортировка вывода Linux выполняется так же просто как и строк из файла.

4. Сортировка по номеру

Отсортируем вывод команды ls по второй колонке. Для сортировки по числовому значению используется опция -n:

 ls -l | sort -nk2

drwx------ 5 user user 12288 янв 15 14:59 Downloads drwxr-xr-x 6 user user 4096 дек 6 14:29 Android drwxr-xr-x 7 user user 4096 июн 10 2015 Sources drwxr-xr-x 7 user user 4096 окт 31 15:08 VirtualBox drwxr-xr-x 7 user user 4096 янв 13 11:42 Lightworks drwxr-xr-x 8 user user 12288 янв 11 12:33 Pictures

5. Удаление дубликатов

Команда sort Linux позволяет не только сортировать строки, но и удалять дубликаты. Для этого есть опция -u:

sort -u test.txt

computer data debian laptop LAPTOP mouse RedHat

Теперь строчка laptop не повторяется.

6. Сортировка по нескольким полям

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

ls -l | sort -t "," -nk2,5 -k9

drwxr-xr-x 2 seriyyy95 seriyyy95 4096 дек 6 14:32 Links drwxr-xr-x 2 seriyyy95 seriyyy95 4096 янв 13 10:43 tmp drwx------ 3 seriyyy95 seriyyy95 4096 янв 14 22:18 Desktop drwxr-xr-x 3 seriyyy95 seriyyy95 4096 мар 28 2015 Журналы drwx------ 4 seriyyy95 seriyyy95 12288 янв 15 15:42 Загрузки

Вот и все. Мы немного приоткрыли занавесу над возможностями сортировки строк linux с помощью команды sort. Если у вас остались вопросы - спрашивайте в комментариях!

Комментарии


Дистанционная компьтерная помощь, удаленная компьютерная помощь онлайн.

Популярные сообщения из этого блога

Лучшие плагины для OBS Studio

Open Broadcast Software или OBS - это свободное программное обеспечение с открытым исходным кодом для стриминга аудио и видео данных в сеть интернет. Программа полностью кроссплатформенная и может работать в Windows, Linux или MacOS. Это отличная альтернатива для таких программ, как Wirecast и XSplit. OBS использует для вещания стандартный протокол обмена сообщениями в реальном времени, а поэтому может транслировать данные в любой сервис, поддерживающий это, например, Yotube. Несмотря на широкие возможности OBS, программа поддерживает еще и множество плагинов. В этой статье мы рассмотрим лучшие плагины для OBS Studio, которые вы можете использовать. Содержание статьи: Лучшие плагины OBS Studio 1. Browser Source Plugin 2. Video Source Plugin 3. Simple Scene Switcher 4. DirectShow Audio Source 5. CLR Browser Source 6. OBS Remote 7. AMD Advanced Media Framework Encoder 8. Text Source Plugin Выводы Лучшие плагины OBS Studio Чтобы найти плагины OBS Studio для Video пользователям пр…

Лучшие аналоги Paint для Linux

Когда я работал в Windows, я часто использовал стандартную программу редактора изображений Windows - Paint. Не всегда нужен очень и многофункциональный инструмент вроде Photoshop или Gimp. Иногда, чтобы подправить ту или иную картинку, дорисовать на ней несколько фигур или вставить текст достаточно простого, легкого в освоении графического редактора вроде Paint. В Linux таких программ довольно много. В этой инструкции мы рассмотрим лучшие аналоги Paint для Linux. В этот список не будут включены такие программы, как Gimp и Krita, ведь это полнофункциональные графические редакторы, векторные редакторы, такие как Inkscape мы тоже рассматривать не будем. А теперь перейдем к списку. Содержание статьи: KolourPaint MyPaint Gnome Paint XPaint Pinta mtPaint GPaint Rassam-paint Выводы KolourPaint На первом месте в списке аналогов Piant для Linux будет KoloutPaint. Это стандартный графический редактор для окружения рабочего стола KDE. Он поддерживает множество форматов изображений PNG, J…

Подключение OneDrive в Linux

OneDrive (Ранее известный как SkyDrive) это популярное облачное хранилище файлов от Майкрософт. Сейчас OneDrive бесплатно предоставляет 7 гигабайт пространства новым пользователям. Как вы знаете OneDrive хорошо интегрирован с другими продуктами компании  Microsoft. В OneDrive Также есть официальный клиент который автоматически загружает ваши видео и фотографии с камеры в облако. Но к сожалению этот клиент недоступен для операционных систем семейства Linux. Но не все так плохо. Сообщество открытого программного обеспечения уже нашло решение. Это opedrive-d от Boilermaker. Запустившись как демон программа автоматически синхронизирует локальную папку с облаком OneDrive. Содержание статьи: Установка Onedrive-d в Linux Настройка Синхронизация локальной папки с OneDrive Установка Onedrive-d в Linux Несмотря на то что onedrive-d разрабатывается для Ubuntu/Debian, CentOs/Fedora/RHEL поддерживается тоже хорошо. Для установки достаточно набрать несколько команд: $ git clone https://gith…