- Команда sort в Linux
- Синтаксис
- Опции
- Вывод результатов в файл
- Вывод результатов в обратном порядке
- Сортировка по заданным полям
- Удаление дублирующих записей
- Проверка сортировки
- Заключение
- Команда sort в Linux с примерами
- Сохранить результат в другом файле
- Сортировка по номеру столбца
- Проверьте отсортированное состояние файла
- Отсортированные данные
- Удалить повторяющиеся элементы
- Сортировка с помощью конвейера в команде
- Случайная сортировка
- Сортировка данных из нескольких файлов
- Сортировать с присоединением
- Сравнить файлы с помощью сортировки
- Заключение
- 10 полезных примеров команды Sort в Linux
- Команда Sort в Linux
- Примеры команды сортировки
- 1. Сортировка в алфавитном порядке
- 2. Сортировка по числовому значению [опция -n]
- 3. Сортировка в обратном порядке [опция -r]
- 4. Случайная сортировка [опция -R]
- 5. Сортировать по месяцам [опция -M]
- 6. Сохраните отсортированные результаты в другой файл
- 7. Сортировать определенный столбец [опция -k]
- 8. Сортировка и удаление дубликатов [опция -u]
- 9. Игнорировать регистр при сортировке [опция -f]
- 10. Сортировка по числовым значениям человека [опция -h]
Команда 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 с примерами
Команда SORT в Linux используется для упорядочивания записей в определенном порядке в соответствии с используемой опцией. Это помогает в сортировке данных в файле построчно. Команда SORT имеет разные функции, которым она следует в результате команд. Во-первых, строки с номерами будут предшествовать буквенным строкам. Строки с строчными буквами будут отображаться раньше, чем строки с тем же символом в верхнем регистре.
Предпосылка
Вам необходимо установить Ubuntu на виртуальный ящик и настроить его. Пользователи должны быть созданы, чтобы иметь права доступа к приложениям.
Синтаксис
Пример
Это простой пример сортировки файла, имеющего данные об именах. Эти имена расположены не по порядку, и для того, чтобы упорядочить их, вам необходимо их отсортировать.
Итак, рассмотрим файл с именем file1.txt. Мы отобразим содержимое файла с помощью добавленной команды:
Теперь используйте команду для сортировки текста в файле:
Сохранить результат в другом файле
Используя команду сортировки, вы узнаете, что ее результат только отображается, но не сохраняется. Чтобы зафиксировать результат, нам нужно его сохранить. Для этого используется опция —o в команде сортировки.
Рассмотрим пример имени sample1.txt с названиями автомобилей. Мы хотим отсортировать их и сохранить полученные данные в отдельном файле. Во время выполнения создается файл с именем result.txt, и в нем сохраняется соответствующий вывод. Данные из sample1.txt передаются в результирующий файл, а затем с помощью —o соответствующие данные сортируются. Мы отобразили данные с помощью команды cat:
$ sort –o result.txt sample1.txt
Вывод показывает, что данные отсортированы и сохранены в другом файле.
Сортировка по номеру столбца
Сортировка выполняется не только по одному столбцу. Мы можем отсортировать один столбец из-за второго столбца. Приведем пример текстового файла, в котором есть имена и оценки студентов. Мы хотим расположить их в порядке возрастания. Поэтому мы будем использовать в команде ключевое слово —k. В то время как —n используется для числовой сортировки.
Поскольку есть два столбца, поэтому 2 используется с n.
Проверьте отсортированное состояние файла
Если вы не уверены, отсортирован данный файл или нет, удалите это сомнение с помощью команды, которая проясняет путаницу и отображает сообщение. Мы рассмотрим два основных примера:
Теперь рассмотрим несортированный файл с названиями овощей.
В команде будет использоваться ключевое слово —c. Это проверит, отсортированы ли данные в файле или нет. Если данные не отсортированы, то вывод будет отображать номер строки первого слова, в котором присутствует несортированность, а также слово.
Из приведенного вывода вы можете понять, что 3- е слово в файле было неуместным.
Отсортированные данные
В этом случае, когда данные уже организованы, больше ничего делать не нужно. Рассмотрим файл result.txt.
Из результата вы можете видеть, что не отображается сообщение, указывающее на то, что данные в соответствующем файле уже отсортированы.
Удалить повторяющиеся элементы
Вот самый полезный вариант. Это помогает удалить повторяющиеся слова в файле и упорядочить элемент файла. Он также поддерживает согласованность данных в файле.
Представьте, что имя файла file2.txt содержит имена субъектов, но одна тема повторяется несколько раз. Затем команда сортировки будет использовать ключевое слово —u для удаления дублирования и родства:
Теперь вы можете видеть, что повторяющиеся элементы удаляются из вывода и что данные также сортируются.
Сортировка с помощью конвейера в команде
Если мы хотим отсортировать данные файла, предоставив список каталога относительно размеров файлов, мы включим все соответствующие данные каталога. ’Ls’ используется в команде, и -l отобразит его. Pipe поможет в упорядоченном отображении файлов.
Случайная сортировка
Иногда, выполняя какую-либо функцию, можно нарушить аранжировку. Если вы хотите расположить данные в любой последовательности и если нет критериев для сортировки, предпочтительнее случайная сортировка. Рассмотрим файл с именем sample3.txt, содержащий названия континентов.
Соответствующие выходные данные показывают, что файл отсортирован, а элементы расположены в другом порядке.
Сортировка данных из нескольких файлов
Одна из самых полезных команд сортировки — это одновременная сортировка данных из разных файлов. Это можно сделать с помощью команды find. Выходные данные команды find будут действовать как входные данные для команды после канала, который является командой сортировки. Ключевое слово Find используется для выдачи только одного файла в каждой строке, или мы можем сказать, что оно использует разрыв после каждого слова.
Например, давайте рассмотрим три файла с именами sample1.txt, sample2.txt и sample3.txt. Здесь «?» представляет собой любое число, за которым следует слово «образец». Find извлечет все три файла, и их данные будут отсортированы с помощью команды sort с инициативой pipe:
Выходные данные показывают, что данные всех файлов серии sample.txt отображаются и упорядочены в алфавитном порядке.
Сортировать с присоединением
Теперь мы представляем пример, который сильно отличается от тех, которые обсуждались ранее в этом руководстве. В дополнение к сортировке мы использовали join. Этот процесс выполняется таким образом, что оба файла сначала сортируются, а затем объединяются с помощью ключевого слова join.
Рассмотрим два файла, которые вы хотите объединить.
Теперь используйте приведенный ниже запрос, чтобы применить данную концепцию:
Из вывода видно, что данные обоих файлов объединены в отсортированном виде.
Сравнить файлы с помощью сортировки
Мы также можем принять концепцию сравнения двух файлов. Техника такая же, как и для стыковки. Сначала сортируются два файла, а затем данные в них сравниваются.
Рассмотрим те же два файла, что и в предыдущем примере. Sample2.txt и sample3.txt:
Данные сортируются и упорядочиваются поочередно. Начальная строка файла sample2.txt записывается рядом с первой строкой файла sample3.txt.
Заключение
В этой статье мы рассказали об основных функциях и параметрах команды сортировки. Команда сортировки Linux очень полезна для обслуживания данных и фильтрации всех бесполезных элементов из файлов.
Источник
10 полезных примеров команды Sort в Linux
Главное меню » Операционная система Linux » 10 полезных примеров команды Sort в Linux
Команда Sort в Linux
Команда sort упорядочивает текстовые строки полезными способами. Этот простой инструмент может помочь вам быстро отсортировать информацию из командной строки.
Вы должны отметить несколько вещей:
- При использовании сортировки без каких-либо параметров применяются правила по умолчанию. Это помогает понять правила по умолчанию, чтобы избежать неожиданных результатов.
- При использовании сортировки ваши исходные данные в безопасности. Результаты вашего ввода отображаются только в командной строке. Однако вы можете указать вывод в отдельный файл, если хотите. Подробнее об этом позже.
- Сортировка изначально была разработана для использования с символами ASCII. Мы не проверяли это, но возможно, что разные кодировки могут привести к неожиданным результатам.
Правила по умолчанию в команде sort
Это правила по умолчанию при использовании сортировки. Первые несколько примеров прояснят, как управляются эти приоритеты. Тогда мы рассмотрим специализированные варианты.
Примеры команды сортировки
Позвольте нам показать вам несколько примеров команды sort, которые вы можете использовать в различных ситуациях.
1. Сортировка в алфавитном порядке
Команда sort по умолчанию позволяет легко просматривать информацию в алфавитном порядке. Никаких опций не требуется, и даже для записей со смешанным регистром сортировка AZ работает должным образом
Мы собираемся использовать пример текстового файла с именем andreyex.txt, и если вы просмотрите содержимое файла , вы увидите следующее:
Linux
Debian
Mint
CentOS
Ubuntu
Вот отсортированный по алфавиту вывод:
2. Сортировка по числовому значению [опция -n]
Давайте возьмем тот же список, который мы использовали в предыдущем примере, и отсортируем по порядку номеров. Если вам интересно, список отражает одни из дистрибутивов Linux.
Мы изменили содержимое файла так, чтобы элементы были пронумерованы, но не в порядке, как показано ниже.
1. Debian
2. CentOS
3. Linux
4. Mint
5. Ubuntu
После сортировки результат:
Выглядит хорошо, правда? Вы можете полагаться на этот метод, чтобы точно расположить ваши данные? Возможно нет. Давайте посмотрим на другой пример, чтобы выяснить, почему.
Вот наш новый образец текста:
Теперь, если мы используем команду sort без каких-либо опций, то вот что мы получим:
При добавлении параметра -n, оценивается числовое значение строки, а не только первый символ. Теперь вы можете видеть, что наш список правильно отсортирован.
Теперь у вас будет правильно отсортированный вывод:
1
2
3
5
5
10
21
23
60
432
3. Сортировка в обратном порядке [опция -r]
Для этого мы снова будем использовать наш список дистрибутивов. Обратная функция не требует пояснений. Это изменит порядок содержимого вашего файла.
И здесь у вас есть выходной текст в обратном порядке:
4. Случайная сортировка [опция -R]
Если вы случайно нажали клавишу Shift, при попытке выполнить функцию реверса, возможно, вы получили странные результаты. -R переставляет вывод в случайном порядке.
Вот случайно отсортированный вывод:
5. Сортировать по месяцам [опция -M]
Сортировка также имеет встроенную функциональность, чтобы организовать по месяцам. Он распознает несколько форматов, основанных на информации о конкретной локали. Мы попытаемся продемонстрировать несколько несоответствующих тестов, чтобы показать, что это будет организовано по дате, а не по году. Сокращения месяца отображаются перед полными именами.
Вот пример текстового файла в этом примере:
Mar
March
February
Apr
April
August
July
June
November
September
1
4
3
6
01/03/19
01/08/19
02/09/18
Давайте разберем по месяцам, используя опцию -M:
Вот результат, который вы увидите:
6. Сохраните отсортированные результаты в другой файл
Как мы упоминали ранее, сортировка не изменяет исходный файл по умолчанию. Если вам нужно сохранить отсортированный контент, это можно сделать.
Для этого примера мы создали новый файл, в котором хотим, чтобы отсортированная информация была напечатана и сохранена с именем andreyex_sorted.txt.
Внимание: если вы попытаетесь перенаправить отсортированные данные в один и тот же файл, он сотрет содержимое вашего файла.
Если вы используете команду cat в выходном файле, это будет его содержимое:
7. Сортировать определенный столбец [опция -k]
Если в вашем файле есть таблица, вы можете использовать опцию -k, чтобы указать, какой столбец сортировать. Мы добавили несколько произвольных чисел в качестве третьего столбца и будем отображать выходные данные, отсортированные по каждому столбцу. Мы включили несколько примеров, чтобы показать разнообразие возможных результатов. Опции добавляются после номера столбца.
1. Debian 300
2. CentOS 200
3. Linux 100
4. Mint 400
5. Ubuntu 500
Это позволит отсортировать текст во втором столбце в алфавитном порядке:
Это позволит отсортировать текст по цифрам в третьем столбце.
3. Linux 100
2. CentOS 200
1. Debian 300
4. Mint 400
5. Ubuntu 500
То же, что и вышеупомянутая команда, только что порядок сортировки был обратным.
8. Сортировка и удаление дубликатов [опция -u]
Если у вас есть файл с потенциальными дубликатами, опция -u значительно облегчит вашу жизнь. Помните, что сортировка не будет вносить изменения в исходный файл данных. Мы решили создать новый файл только с элементами, которые являются дубликатами. Ниже вы увидите входные данные, а затем содержимое каждого файла после выполнения команды.
1. Debian
2. CentOS
3. Linux
4. Mint
5. Ubuntu
2. CentOS
3. Linux
4. Mint
1. Debian
3. Linux
5. Ubuntu
Вот выходные файлы отсортированы и без дубликатов.
9. Игнорировать регистр при сортировке [опция -f]
Многие современные дистрибутивы, работающие с sort, по умолчанию реализуют игнорирование регистра. Если это не так, добавление опции -f даст ожидаемые результаты.
Вот вывод, где случаи игнорируются командой sort:
10. Сортировка по числовым значениям человека [опция -h]
Эта опция позволяет сравнивать буквенно-цифровые значения, такие как 2k (то есть 2000).
Вот отсортированный вывод:
Мы надеемся, что эта статья помогла вам получить базовое использование команды sort в Linux. Если у вас есть какой-нибудь классный трюк, почему бы не поделиться им с нами в разделе комментариев?
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник