Linux командная строка сортировка

Команда sort в Linux

sort – простая и очень полезная команда, которая меняет порядок строк в текстовом файле, то есть осуществляет их сортировку по алфавиту или в соответствии с числовыми значениями. По умолчанию правила сортировки следующие:

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

Правила сортировки можно изменять при помощи опций. Мы рассмотрим их ниже.

Синтаксис

Основной синтаксис команды следующий

Команда также может быть использована в составе конвейеров (пайпов). Например

Опции

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

Вы получите следующий результат:

Как видим сейчас строки отсортированы в алфавитном порядке.

Вывод результатов в файл

Команда sort не изменяет исходный файл, а просто выводит его содержимое в отсортированном виде. Чтобы сохранить результаты сортировки, воспользуйтесь опцией -o или перенаправлением вывода:

Выведем файл output.txt:

Вывод результатов в обратном порядке

Опция -r позволяет выводить результаты сортировки в обратном порядке:

Сортировка по заданным полям

Для сортировки по определенным полям используется опция –k. Она указывается в следующем формате:

Где ПОЛЕ1 и т.д. – номер поля (столбца), по которому осуществляется сортировка. Для примера создадим новый файл prices.txt со следующим содержимым:

Для его сортировки по второму столбцу можно выполнить следующую команду:

Результат будет следующим

На первый взгляд кажется что команда сработала неправильно. Действительно, кажется что в самом верху должны стоять сливы, а яблоки нижней строкой, да и апельсины дороже банан. Но на самом деле команда sort воспринимает цифры не как число, а как строку, т.е сортировка происходит по первой цифре. Вот тогда все встает на свои места команда вывела последовательность не числовую сортировку «200-150-80-60-50» а строковую «1-2-5-6-8».

Опцию -k можно задавать в более сложном виде. Каждое поле задается в виде X.Y, где X – номер поля, а Y – начальная позиция поля, с которой начинается сортировка. Для примера создадим файл employee.txt со следующим содержимым:

Если просто указать номер поля, результат сортировки будет следующим:

Значение начальной позиции сортировки 4 заставит команду игнорировать первые 3 буквы и начнет сортировку с 4-й, т.е после «ст.» и «мл.»

Удаление дублирующих записей

Опция -u удаляет из результатов дублирующие записи и выводит только уникальные поля. Допустим, у нас есть файл cars.txt со следующими данными:

Выведет следующий результат:

Проверка сортировки

Опция -с позволяет проверить, отсортированы ли данные в файле. Если выполнение команды с этой опцией не возвращает никакого результата, значит, строки файла уже упорядочены. Иначе будут выведены строки, нарушающие порядок сортировки. Допустим, файл cars2.txt содержит следующие данные:

Audi
Cadillac
BMW
Dodge

Для проверки выполним следующую команду:

Читайте также:  Linux losst не выключается

Вот ее результат.

Мы видим, что строка «BMW» нарушает порядок сортировки:

Заключение

Команда sort – простой, но очень мощный и полезный при работе с данными инструмент. У нее есть множество разнообразных опций, помимо уже рассмотренных, которые можно узнать на соответствующей man-странице. Кроме того, ее можно использовать совместно с командами find и join для поиска по большому количеству файлов или объединения результатов.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Команда SORT в Linux / Unix с примерами

Команда SORT используется для сортировки файла, упорядочивая записи в определенном порядке. По умолчанию команда sort сортирует файл, предполагая, что его содержимое — ASCII. Используя опции в команде сортировки, она также может быть использована для числовой сортировки.

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

Команда sort следует этим функциям, как указано ниже:

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

Примеры

Предположим, вы создали файл данных с именем file.txt

Сортировка файла: теперь используйте команду сортировки
Синтаксис:

Примечание. Эта команда фактически не меняет входной файл, то есть file.txt.

Функция сортировки с файлом микширования, то есть с заглавными и строчными буквами: если у нас есть файл микширования с прописными и строчными буквами, то сначала сортируются строчные буквы, а затем заглавные.
Пример:
Создайте файл mix.txt

Теперь используйте команду сортировки

Опции с функцией сортировки

    -o Опция: Unix также предоставляет нам специальные возможности, например, если вы хотите записать вывод в новый файл output.txt, перенаправить вывод, как это, или вы также можете использовать встроенную опцию сортировки -o, которая позволяет вам указать выходной файл.
    Использование параметра -o функционально аналогично перенаправлению вывода в файл.
    Примечание: ни один из них не имеет преимущества перед другим.
    Пример: входной файл такой же, как указано выше.
    Синтаксис:

-r Опция:сортировка в обратном порядке : вы можете выполнить сортировку в обратном порядке, используя флаг -r. флаг -r — это опция команды сортировки, которая сортирует входной файл в обратном порядке, то есть по убыванию по умолчанию.
Пример: входной файл такой же, как указано выше.
Синтаксис:

-n Опция: Для сортировки файла Численно используется опция -n. Опция -n также предопределена в unix, как и вышеупомянутые опции. Эта опция используется для сортировки файла с числовыми данными, присутствующими внутри.
Пример :
Давайте рассмотрим файл с номерами:

Опция -nr : для сортировки файла с числовыми данными в обратном порядке мы можем использовать комбинацию двух опций, как указано ниже.
Пример: числовой файл такой же, как указано выше.
Синтаксис:

Читайте также:  Не выходит панель windows 10

-k Опция : Unix предоставляет возможность сортировки таблицы по любому номеру столбца с помощью опции -k.
Используйте опцию -k для сортировки по определенному столбцу. Например, используйте «-k 2» для сортировки по второму столбцу.
Пример :
Давайте создадим таблицу с 2 столбцами

Опция -c: эта опция используется, чтобы проверить, был ли данный файл уже отсортирован или нет & проверяет, отсортирован ли уже файл, передайте опцию -c для сортировки. Это приведет к записи в стандартный вывод, если есть строки, которые не в порядке. Инструмент сортировки может использоваться, чтобы понять, отсортирован ли этот файл и какие строки не в порядке.
Пример :
Предположим, существует файл со списком автомобилей с именем cars.txt.

Параметр -u: для сортировки и удаления дубликатов передайте параметр -u для сортировки. Это запишет отсортированный список в стандартный вывод и удалит дубликаты.
Эта опция полезна, так как удаляемые дубликаты дают нам избыточный файл.
Пример. Предположим, существует файл со списком автомобилей с именем cars.txt.

Параметр -M: для сортировки по месяцам укажите параметр -M для сортировки. Это запишет отсортированный список в стандартный вывод, упорядоченный по названию месяца.
Пример:
Предположим, что следующий файл существует и сохраняется как months.txt

февраль
январь
марш
августейший
сентябрь

Использование опции -M с сортировкой позволяет нам заказать этот файл.

Применение и использование команды сортировки

  1. Он может сортировать любой тип файла, будь то табличный файл, текстовый файл, числовой файл и так далее.
  2. Сортировка может быть осуществлена напрямую из одного файла в другой, не мешая текущей работе.
  3. Сортировка файлов таблиц по столбцам была упрощена и упрощена.
  4. Так много вариантов доступно для сортировки всеми возможными способами.
  5. Наиболее выгодное использование заключается в том, что конкретный файл данных может использоваться много раз, поскольку в предоставленном входном файле не вносятся никакие изменения.
  6. Исходные данные всегда безопасны и не мешают.

Эта статья предоставлена Мохаком Агравалом . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

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

Источник

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

sort — UNIX‐ утилита, сортирует содержимое указанных файлов, с учётом установленной в среде переменных локализации.

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

Принципы, по которым команда sort linux сортирует строки

Пример сортировки и обратной сортировки

Прямая сортировка файл, по принципам описанным выше, происходит по умолчанию. Просто вызовите команду sort и укажите нужный файл. Например, мы хотим отсортировать по алфавиту файл служб Linux (/etc/services), который хранит информацию о многочисленных службах, которые клиентские приложения могут использовать на компьютере. Внутри файла services находятся имя службы, номер порта и протокол, который он использует, и любые применимые псевдонимы.

Для обратной сортировки используйте ключ r, команда будет выглядеть так:

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

В этом примере мне нужно вывести все лог файлы и отсортировать их по колонке с названием месяца. Колонка указывается опцией -k, номер колонки для вывода команды ls седьмой. Итого получим такую команду для запуска:

Читайте также:  Если не хватает драйвера для windows

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

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

Использование sort для удаления дубликатов

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

Источник

Команда sort в Linux

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

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

Синтаксис

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

$ sort опции файл

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

Опции

Теперь рассмотрим основные опции утилиты sort.

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

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

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

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

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

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

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

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

Вот несколько принципов, по которым команда sort linux сортирует строки:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Оцените статью