Команда сортировки в linux

Обновлено: 02.07.2024

Sort — это программа для Linux, используемая для печати строк входных текстовых файлов и объединения всех файлов в отсортированном порядке. Команда сортировки использует пробел в качестве разделителя полей и весь входной файл в качестве ключа сортировки. Важно отметить, что команда sort на самом деле не сортирует файлы, а только печатает отсортированный вывод, пока вы не перенаправите вывод.

Эта статья направлена ​​на глубокое понимание команды сортировки Linux с помощью 14 полезных практических примеров, которые покажут вам, как использовать команду сортировки в Linux.

<р>1. Сначала мы создадим текстовый файл (tecmint.txt) для выполнения примеров команды «сортировка». Наш рабочий каталог — ‘/home/$USER/Desktop/tecmint.

Опция «-e» в приведенной ниже команде включает интерпретацию обратной косой черты, а /n указывает эхо-команде echo записывать каждую строку в новую строку.

<р>2. Прежде чем мы начнем с «сортировки», давайте посмотрим на содержимое файла и на то, как он выглядит.

<р>3. Теперь отсортируйте содержимое файла с помощью следующей команды.

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

<р>4. Отсортируйте содержимое файла «tecmint.txt» и запишите его в файл с именем (sorted.txt) и проверьте содержимое с помощью команды cat.

<р>5. Теперь отсортируйте содержимое текстового файла «tecmint.txt» в обратном порядке с помощью переключателя «-r» и перенаправьте вывод в файл «reversesorted.txt». Также проверьте список содержимого только что созданного файла.

<р>6. Мы создадим новый файл (lsl.txt) в том же месте для подробных примеров и заполним его, используя вывод ‘ls -l‘ для вашего домашнего каталога.

Теперь будут показаны примеры сортировки содержимого на основе другого поля, а не начальных символов по умолчанию.

<р>7. Отсортируйте содержимое файла ‘lsl.txt’ на основе 2-го столбца (который представляет количество символических ссылок).

Примечание. Параметр «-n» в приведенном выше примере сортирует содержимое в числовом виде. Опция ‘-n’ должна использоваться, когда мы хотим отсортировать файл на основе столбца, содержащего числовые значения.

<р>8. Отсортируйте содержимое файла «lsl.txt» на основе 9-го столбца (который является именем файлов и папок и не является числовым).

<р>9. Не всегда необходимо запускать команду сортировки для файла. Мы можем передать это прямо на терминал с помощью фактической команды.

<р>10. Отсортируйте и удалите дубликаты из текстового файла tecmint.txt. Проверьте, был ли удален дубликат.

Правила на данный момент (что мы наблюдали):

  1. Строки, начинающиеся с цифр, являются предпочтительными в списке и находятся вверху, пока не указано иное (-r).
  2. Строки, начинающиеся со строчных букв, являются предпочтительными в списке и находятся вверху, пока не указано иное (-r).
  3. Содержание перечисляется на основе появления алфавитов в словаре, пока не указано иное (-r).
  4. Команда Sort по умолчанию обрабатывает каждую строку как строку, а затем сортирует ее в зависимости от вхождения алфавитов в словарь (предпочтительно числовой; см. правило – 1), пока не указано иное.
<р>11. Создайте третий файл «lsla.txt» в текущем местоположении и заполните его выходными данными команды «ls -lA».

Те, кто разбирается в команде ‘ls’, знают, что ‘ls -lA’=’ls -l’ + скрытые файлы. Таким образом, большая часть содержимого этих двух файлов будет одинаковой.

<р>12. Сортировать содержимое двух файлов в стандартном выводе за один раз.

Обратите внимание на повторение файлов и папок.

<р>13. Теперь мы можем увидеть, как сортировать, объединять и удалять дубликаты из этих двух файлов.

Обратите внимание, что дубликаты были исключены из выходных данных. Кроме того, вы можете записать вывод в новый файл, перенаправив вывод в файл.

14. Мы также можем сортировать содержимое файла или вывод на основе более чем одного столбца. Отсортируйте вывод команды ‘ls -l’ на основе полей 2,5 (числовое) и 9 (нечисловое).

На этом пока все. В следующей статье мы подробно рассмотрим еще несколько примеров команды «сортировка». А пока следите за обновлениями и подключайтесь к Tecmint. Продолжайте делиться. Продолжайте комментировать. Ставьте лайки, делитесь нами и помогайте нам распространяться.

Если вам понравилась эта статья, подпишитесь на уведомления по электронной почте о руководствах по Linux. Если у вас есть вопросы или сомнения? обратитесь за помощью в разделе комментариев.

Если вы цените то, что мы делаем здесь, в TecMint, вам следует подумать о следующем:

TecMint – это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей, доступных всем БЕСПЛАТНО.

Если вам нравится то, что вы читаете, купите нам кофе (или 2) в знак признательности.

Поддержите нас

Мы благодарны за вашу бесконечную поддержку.

Похожие сообщения

 Отключить Su Access для пользователя

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

Система Linux Команды администратора

 Как скачать файлы в Linux

Примеры Linux Cron

Linux Vmstat и команды Iostat

7 мыслей о «14 полезных примерах команды sort в Linux — часть 1»

<р>2. Почему при выполнении чего-то вроде « sort -nk5,5 table.txt » команда sort удаляет записи с 0? (файлы с размером 0 должны быть отсортированы, а не удалены)

Ссылка на 7 интересных команд сортировки не работает должным образом. Он загружает эту статью

Примеров команды «сортировка» всего 10. Остальные четыре записи просто создают файлы для ввода в примеры команды «сортировка».

Привет!
Просто интересно, почему вы вводите «/home/$USER/», а не просто «$HOME/». Ненужный набор текста. Просто говорю. :) Или я что-то упустил?

В последней команде:

$ ls -l /home/$USER | сортировать -t "," -nk2,5 -k9

Зачем вы ставите параметр -t ? Я не понимаю…

У меня есть копия списка слов/словаря размером 4,09 ГБ, crackstation.txt. Только что слова и числа расположены в обычном порядке: 0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStT uUvVwWxXyYzZ

Как изменить порядок на что-то вроде:

(Эта последовательность показывает первые буквы английских слов в порядке популярности, от наиболее популярных (слева) до наименее популярных (справа))

«14 полезных примеров…»

Нет, это 14 пронумерованных записей, но некоторые из них просто дублируют функции сортировки с использованием файлов и стандартного ввода.

Здравствуйте, какую программу вы используете для создания gif, как показано выше?

Есть что сказать? Присоединяйтесь к обсуждению. Отменить ответ

Этот сайт использует Akismet для уменьшения количества спама. Узнайте, как обрабатываются данные ваших комментариев.

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

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

Пример:

Создайте файл mix.txt

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

Параметры с функцией сортировки:

<р>1. Опция -o: Unix также предоставляет нам специальные средства, например, если вы хотите записать вывод в новый файл, output.txt, перенаправляет вывод таким образом, или вы также можете использовать встроенную опцию сортировки -o, которая позволяет вам указать выходной файл.

Использование параметра -o функционально аналогично перенаправлению вывода в файл.

Примечание. Ни один из них не имеет преимущества перед другим.

Пример: входной файл такой же, как указано выше.

Синтаксис:

<р>2. Опция -r: сортировка в обратном порядке: вы можете выполнить сортировку в обратном порядке, используя флаг -r. флаг -r является опцией команды sort, которая сортирует входной файл в обратном порядке, то есть по убыванию по умолчанию.

Пример: входной файл такой же, как указано выше.

Синтаксис:

<р>3. Опция -n: для сортировки файла по числовому номеру используется опция –n. Параметр -n также предопределен в Unix, как и указанные выше параметры. Эта опция используется для сортировки файла с числовыми данными внутри.

Пример:

Давайте рассмотрим файл с номерами:

Синтаксис:

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

Пример: числовой файл такой же, как и выше.

Синтаксис:

<р>5. Опция -k: Unix предоставляет возможность сортировки таблицы на основе любого номера столбца с помощью опции -k.

Используйте параметр -k для сортировки по определенному столбцу. Например, используйте «-k 2» для сортировки по второму столбцу.

Пример:

Давайте создадим таблицу с двумя столбцами

Синтаксис:

<р>6. Опция -c: эта опция используется для проверки того, отсортирован ли уже данный файл или нет, и проверяет, отсортирован ли уже файл, передайте опцию -c для сортировки. Это запишет в стандартный вывод, если есть строки, которые не по порядку.Инструмент сортировки можно использовать, чтобы понять, отсортирован ли этот файл и какие строки не по порядку

Пример:

Предположим, существует файл cars.txt со списком автомобилей.

Синтаксис:

<р>7. Опция -u: чтобы отсортировать и удалить дубликаты, передайте опцию -u для сортировки. Это запишет отсортированный список в стандартный вывод и удалит дубликаты.
Этот параметр полезен, так как удаляемые дубликаты дают нам избыточный файл.

Пример. Предположим, существует файл со списком автомобилей с именем cars.txt.

Синтаксис:

<р>8. Опция -M: для сортировки по месяцам передайте опцию -M для сортировки. Это запишет отсортированный список в стандартный вывод, упорядоченный по названию месяца.

Команда SORT в Linux используется для упорядочивания записей в определенном порядке в соответствии с используемой опцией. Это помогает сортировать данные в файле построчно. Команда SORT имеет различные функции, которые она следует в результате команд. Во-первых, строки с номерами будут стоять перед строками с буквами. Строки со строчными буквами будут отображаться раньше, чем строки с тем же символом в верхнем регистре.

Условие:

Вам необходимо установить Ubuntu на виртуальную машину и настроить ее. Пользователи должны быть созданы, чтобы иметь права доступа к приложениям.

Синтаксис:

Пример:

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

Итак, рассмотрим файл с именем file1.txt. Мы отобразим содержимое файла с помощью добавленной команды:


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


Сохранить результат в другом файле

Используя команду сортировки, вы узнаете, что ее результат только отображается, но не сохраняется. Чтобы зафиксировать результат, нам нужно его сохранить. Для этого используется опция –o в команде sort.

Рассмотрите пример имени sample1.txt, содержащего названия автомобилей. Мы хотим отсортировать их и сохранить полученные данные в отдельный файл. Файл с именем result.txt создается во время выполнения, и в нем сохраняется соответствующий вывод. Данные sample1.txt переносятся в результирующий файл, а затем с помощью –o соответствующие данные сортируются. Мы отобразили данные с помощью команды cat:


$ sort sample1.txt > result.txt

$ sort –o result.txt sample1.txt


Вывод показывает, что данные отсортированы и сохранены в другом файле.

Сортировка по номеру столбца

Сортировка выполняется не только по одному столбцу. Мы можем отсортировать один столбец из-за второго столбца. Приведем пример текстового файла, в котором есть имена и оценки учеников. Мы хотим организовать их в порядке возрастания. Поэтому мы будем использовать ключевое слово –k в команде. В то время как –n используется для числовой сортировки.



Поскольку есть два столбца, 2 используется с n.

Проверить состояние сортировки файла

Если вы не уверены, отсортирован ли данный файл или нет, устраните это сомнение с помощью команды, которая проясняет путаницу и отображает сообщение. Мы рассмотрим два основных примера:

Теперь рассмотрим несортированный файл с названиями овощей.


Команда будет использовать ключевое слово –c. Это проверит, отсортированы ли данные в файле или нет. Если данные не отсортированы, то вывод будет отображать номер строки первого слова, в котором присутствует несортировка в файле, а также слово.


Из данного вывода вы можете понять, что 3-е слово в файле было не на месте.

Отсортированные данные

В этом случае, когда данные уже организованы, ничего делать не нужно. Рассмотрим файл result.txt.



Из результата видно, что не отображается сообщение, указывающее на то, что данные в соответствующем файле уже отсортированы.

Удалить повторяющиеся элементы

Вот наиболее полезная опция. Это помогает удалить повторяющиеся слова в файле и упорядочить элемент файла. Он также обеспечивает согласованность данных в файле.

Считайте, что имя файла file2.txt содержит названия тем, но одна тема повторяется несколько раз. Затем команда Sort будет использовать ключевое слово –u для удаления дублирования и связанности:


Теперь вы можете видеть, что повторяющиеся элементы удалены из вывода, а данные также отсортированы.


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

Если мы хотим отсортировать данные файла, предоставив список каталогов, касающихся размеров файлов, мы зачислим все соответствующие данные каталога. В команде используется «ls», и -l отобразит его. Канал поможет упорядоченно отображать файлы.


Случайная сортировка

Иногда при выполнении какой-либо функции можно напортачить с аранжировкой. Если вы хотите расположить данные в любой последовательности и если нет критериев для сортировки, то предпочтительна случайная сортировка. Рассмотрим файл с именем sample3.txt, содержащий названия континентов.



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

Сортировка данных нескольких файлов

Одной из самых полезных команд сортировки является сортировка данных разных файлов одновременно. Это можно сделать с помощью команды find. Выходные данные команды find будут действовать как входные данные для команды после канала, который является командой сортировки. Ключевое слово Find используется для указания только одного файла в каждой строке, или мы можем сказать, что оно использует разрыв после каждого слова.

Например, рассмотрим три файла с именами sample1.txt, sample2.txt и sample3.txt. Здесь «?» представляет любое число, за которым следует слово «образец». Find выберет все три файла, и их данные будут отсортированы с помощью команды сортировки с инициативой канала:

Вывод показывает, что данные всех файлов серии sample.txt отображаются и упорядочены в алфавитном порядке.


Сортировка с соединением

Теперь мы представляем пример, который сильно отличается от тех, что обсуждались ранее в этом руководстве. В дополнение к sort мы использовали соединение. Этот процесс выполняется таким образом, что оба файла сначала сортируются, а затем объединяются с помощью ключевого слова соединения.

Рассмотрите два файла, которые вы хотите соединить.


Теперь используйте приведенный ниже запрос, чтобы применить данную концепцию:


Из вывода видно, что данные обоих файлов объединены в отсортированном виде.

Сравнить файлы с помощью сортировки

Мы также можем принять концепцию сравнения двух файлов. Техника та же, что и при соединении. Сначала сортируются два файла, а затем сравниваются данные в них.

Рассмотрите те же два файла, что и в предыдущем примере. Sample2.txt и sample3.txt:


Данные сортируются и располагаются альтернативно. Начальная строка файла sample2.txt записывается рядом с первой строкой файла sample3.txt.

Заключение

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

Об авторе

Акса Ясин

Я целеустремленный профессионал в области информационных технологий и обожаю писать. Я технический писатель и люблю писать для всех разновидностей Linux и Windows.

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

Опубликовано: 9 сентября 2020 г. | Амит Вагмаре

Использование сортировки для управления текстом в Linux

Дополнительные ресурсы по Linux

Команда sort используется в Linux для печати вывода файла в заданном порядке. Эта команда обрабатывает ваши данные (содержимое файла или вывод любой команды) и переупорядочивает их указанным образом, что помогает нам эффективно читать данные. Это очень полезно в тех случаях, когда доступно большое количество информации, и ее необходимо упорядочить в алфавитном, возрастающем или убывающем порядке.

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

При числовой сортировке команда проверяет числа в каждой строке и упорядочивает строки в порядке возрастания или убывания. Эта организация отображает меньшее число в верхней части выходных данных. Существует очень небольшая разница в командах sort и grep. Команда sort упорядочивает данные в алфавитном или числовом порядке в порядке возрастания или убывания. Команда grep отображает или скрывает только необходимую информацию.

Короче говоря, команда сортировки полезна, когда вам нужно прочитать большой файл или список, который неправильно организован, и чтение этих файлов становится трудным и трудоемким. Чтобы решить эту проблему, используйте команду sort в Linux, чтобы упорядочить содержимое файлов или списков в требуемом формате, что может помочь прочитать требуемое содержимое. Команда sort предполагает, что данные представлены в формате ASCII. Есть несколько полезных опций для сортировки, которые могут изменить поведение вывода. Ниже приведены некоторые примеры вместе с синтаксисом команды.

Синтаксис

Примеры

В первом примере мы используем команду сортировки без каких-либо параметров. Это организует каждую строку в алфавитном порядке, учитывая первую букву каждой строки. Примечание. Строки, начинающиеся с буквы нижнего регистра, отображаются перед строками, начинающимися с буквы верхнего регистра. Поэтому буква b (строчная) находится на первой позиции, а буква B (верхняя) — на второй позиции.

Иногда нам нужны данные в обратном порядке, то есть в порядке, обратном алфавитному. Это достигается с помощью параметра -r, как показано ниже:

Как и сортировка по буквам, мы также можем сортировать по числам. Опция -n упорядочивает числовые значения и обращает ваши результаты с помощью опции -r. Ниже с помощью опции -n мы расположили числа в порядке возрастания. Следовательно, наименьшее число находится вверху, а наибольшее число — внизу. Мы также можем инвертировать вывод, используя ту же опцию -r с -n и отобразить наибольшее число вверху.

Вы также можете отсортировать определенный столбец. Чтобы отсортировать конкретный столбец, используйте параметр -k вместе с номером столбца. Обратите внимание, что в приведенном ниже примере мы использовали только параметр -k для выбора столбца, поэтому команда сортировки упорядочивает данные, учитывая первую цифру второго столбца, а не весь номер второго столбца. Таким образом, строка, содержащая цифру 278, отображается перед строкой, содержащей цифру 28. Если мы используем опцию -n с -k (для выбора столбца), то данные отображаются в порядке возрастания, и последовательность будет от наименьшего к наибольшему числу ( который был рассмотрен во втором примере):

Здесь мы используем номер столбца и числовую сортировку вместе. В следующем примере мы сортируем пятый столбец по возрастанию.

Часто в некоторых строках много повторяющихся записей. Их можно устранить с помощью параметра -u. В следующем примере мы показываем поведение параметра -u для устранения повторяющихся записей:

Есть одна интересная опция, с помощью которой мы можем проверить, отсортирован ли файл или нет. Используя параметр -c, команда сортировки сообщает о первой неуместной строке. Если существующий файл уже отсортирован, то sort ничего не выводит. Он проверяет каждую строку одну за другой и, когда находит какую-либо неотсортированную строку, выдает сообщение. В приведенном ниже примере параметр -c команды sort помогает проверять каждую строку. В первой попытке он сравнивает первую букву первых двух строк, которые считает правильными, т. е. буквы D и буквы M расположены в алфавитном порядке. Во второй попытке он проверяет первую букву третьей строки с начальной буквой первых двух строк и обнаруживает, что третья строка не расположена в алфавитном порядке. Поэтому он печатает первую несовпадающую строку файла с номером строки.

Точно так же, как данные или числа, мы также можем расположить месяцы в файле. Сделайте это с помощью параметра -M и измените порядок с помощью параметра -r.

Мы также можем сортировать более одного файла одновременно, используя соответствующие имена файлов в качестве аргументов, разделенных пробелом. Вывод печатается один за другим. Ниже я использовал параметр -n для сортировки второго числового файла.

Вы также можете перенаправить отсортированный вывод в другой файл, используя параметр -o:

Подведение итогов

Используя приведенные выше параметры, мы видим, что сортировку можно выполнять с содержимым файла или выводом любой команды. Это позволяет легко упорядочивать большие наборы данных в порядке возрастания или убывания. Есть так много вариантов, которые мы можем использовать, чтобы переупорядочить данные всеми возможными способами. Самое удивительное, что мы не вносили никаких изменений в исходный файл. Поэтому наши данные в безопасности.

Читайте также: