- Команда sort в Linux
- Синтаксис
- Опции
- Вывод результатов в файл
- Вывод результатов в обратном порядке
- Сортировка по заданным полям
- Удаление дублирующих записей
- Проверка сортировки
- Заключение
- Команда SORT в Linux / Unix с примерами
- Примеры использования утилиты sort
- Принципы, по которым команда sort linux сортирует строки
- Пример сортировки и обратной сортировки
- Сортировка по колонке и по нескольким полям
- Использование sort для удаления дубликатов
- Команда sort в Linux
- Синтаксис
- Опции
- Примеры использования sort
- 1. Сортировка
- 2. Обратная сортировка
- 3. Сортировка по колонке
- 4. Сортировка по номеру
- 5. Удаление дубликатов
- 6. Сортировка по нескольким полям
Команда 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
Для проверки выполним следующую команду:
Вот ее результат.
Мы видим, что строка «BMW» нарушает порядок сортировки:
Заключение
Команда sort – простой, но очень мощный и полезный при работе с данными инструмент. У нее есть множество разнообразных опций, помимо уже рассмотренных, которые можно узнать на соответствующей man-странице. Кроме того, ее можно использовать совместно с командами find и join для поиска по большому количеству файлов или объединения результатов.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Команда SORT в Linux / Unix с примерами
Команда SORT используется для сортировки файла, упорядочивая записи в определенном порядке. По умолчанию команда sort сортирует файл, предполагая, что его содержимое — ASCII. Используя опции в команде сортировки, она также может быть использована для числовой сортировки.
- Команда SORT сортирует содержимое текстового файла построчно.
- sort — это стандартная программа командной строки, которая печатает строки ввода или объединения всех файлов, перечисленных в списке аргументов, в отсортированном порядке.
- Команда sort — это утилита командной строки для сортировки строк текстовых файлов. Он поддерживает сортировку по алфавиту, в обратном порядке, по номеру, по месяцам, а также может удалять дубликаты.
- Команда sort также может сортировать элементы, находящиеся не в начале строки, игнорировать чувствительность к регистру и возвращать, отсортирован файл или нет. Сортировка выполняется на основе одного или нескольких ключей сортировки, извлеченных из каждой строки ввода.
- По умолчанию весь ввод принимается как ключ сортировки. Пробел является разделителем полей по умолчанию.
Команда sort следует этим функциям, как указано ниже:
- Строки, начинающиеся с цифры, появятся перед строками, начинающимися с буквы.
- Строки, начинающиеся с буквы, которая появляется раньше в алфавите, будут появляться перед строками, начинающимися с буквы, которая появляется позже в алфавите.
- Строки, начинающиеся со строчной буквы, появятся перед строками, начинающимися с той же буквы в верхнем регистре.
Примеры
Предположим, вы создали файл данных с именем file.txt
Сортировка файла: теперь используйте команду сортировки
Синтаксис:
Примечание. Эта команда фактически не меняет входной файл, то есть file.txt.
Функция сортировки с файлом микширования, то есть с заглавными и строчными буквами: если у нас есть файл микширования с прописными и строчными буквами, то сначала сортируются строчные буквы, а затем заглавные.
Пример:
Создайте файл mix.txt
Теперь используйте команду сортировки
Опции с функцией сортировки
- -o Опция: Unix также предоставляет нам специальные возможности, например, если вы хотите записать вывод в новый файл output.txt, перенаправить вывод, как это, или вы также можете использовать встроенную опцию сортировки -o, которая позволяет вам указать выходной файл.
Использование параметра -o функционально аналогично перенаправлению вывода в файл.
Примечание: ни один из них не имеет преимущества перед другим.
Пример: входной файл такой же, как указано выше.
Синтаксис:
-r Опция:сортировка в обратном порядке : вы можете выполнить сортировку в обратном порядке, используя флаг -r. флаг -r — это опция команды сортировки, которая сортирует входной файл в обратном порядке, то есть по убыванию по умолчанию.
Пример: входной файл такой же, как указано выше.
Синтаксис:
-n Опция: Для сортировки файла Численно используется опция -n. Опция -n также предопределена в unix, как и вышеупомянутые опции. Эта опция используется для сортировки файла с числовыми данными, присутствующими внутри.
Пример :
Давайте рассмотрим файл с номерами:
Опция -nr : для сортировки файла с числовыми данными в обратном порядке мы можем использовать комбинацию двух опций, как указано ниже.
Пример: числовой файл такой же, как указано выше.
Синтаксис:
-k Опция : Unix предоставляет возможность сортировки таблицы по любому номеру столбца с помощью опции -k.
Используйте опцию -k для сортировки по определенному столбцу. Например, используйте «-k 2» для сортировки по второму столбцу.
Пример :
Давайте создадим таблицу с 2 столбцами
Опция -c: эта опция используется, чтобы проверить, был ли данный файл уже отсортирован или нет & проверяет, отсортирован ли уже файл, передайте опцию -c для сортировки. Это приведет к записи в стандартный вывод, если есть строки, которые не в порядке. Инструмент сортировки может использоваться, чтобы понять, отсортирован ли этот файл и какие строки не в порядке.
Пример :
Предположим, существует файл со списком автомобилей с именем cars.txt.
Параметр -u: для сортировки и удаления дубликатов передайте параметр -u для сортировки. Это запишет отсортированный список в стандартный вывод и удалит дубликаты.
Эта опция полезна, так как удаляемые дубликаты дают нам избыточный файл.
Пример. Предположим, существует файл со списком автомобилей с именем cars.txt.
Параметр -M: для сортировки по месяцам укажите параметр -M для сортировки. Это запишет отсортированный список в стандартный вывод, упорядоченный по названию месяца.
Пример:
Предположим, что следующий файл существует и сохраняется как months.txt
февраль
январь
марш
августейший
сентябрь
Использование опции -M с сортировкой позволяет нам заказать этот файл.
Применение и использование команды сортировки
- Он может сортировать любой тип файла, будь то табличный файл, текстовый файл, числовой файл и так далее.
- Сортировка может быть осуществлена напрямую из одного файла в другой, не мешая текущей работе.
- Сортировка файлов таблиц по столбцам была упрощена и упрощена.
- Так много вариантов доступно для сортировки всеми возможными способами.
- Наиболее выгодное использование заключается в том, что конкретный файл данных может использоваться много раз, поскольку в предоставленном входном файле не вносятся никакие изменения.
- Исходные данные всегда безопасны и не мешают.
Эта статья предоставлена Мохаком Агравалом . Если вы как 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 седьмой. Итого получим такую команду для запуска:
Для сортировки по числовому значению используется опция -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. Если у вас остались вопросы — спрашивайте в комментариях!
Источник