Как отсортировать данные в файле с помощью Linux

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

Вы не удивитесь, узнав, что команда, которую вы используете для выполнения этой задачи, называется «сортировать». Все основные параметры команды sort будут представлены в этой статье.

Пример данных

Данные в файле могут быть отсортированы, если они каким-либо образом разделены.

Например, давайте возьмем итоговую таблицу лиг из шотландской Премьер-лиги в прошлом году и сохраним данные в файле с именем «spl». Вы можете создать файл данных следующим образом с одним клубом и данными для этого клуба, разделенными запятыми в каждой строке.

команда
Забитые голы
Цели против
Точки
кельтский933186
Абердин624871
Сердца594065
Святой Джонстон585556
Мазервел476350
Росс Каунти556148
плащ с капюшоном без рукавов544852
Dundee535748
Partick415046
Гамильтон426343
Килмарнок416436
Данди Юнайтед457028

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

Из этой таблицы видно, что «Селтик» выиграл чемпионат, а «Данди Юнайтед» стал последним. Если вы болеете за «Данди Юнайтед», вы можете почувствовать себя лучше, и вы можете сделать это, сортируя по забитым мячам.

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

сортировать -k2 -t, spl

На этот раз порядок будет следующим:

  • Partick
  • Килмарнок
  • Гамильтон
  • Данди Юнайтед
  • Мазервел
  • Dundee
  • плащ с капюшоном без рукавов
  • Росс Каунти
  • Святой Джонстон
  • Сердца
  • Абердин
  • кельтский

Причина в том, что результаты в этом порядке, заключается в том, что столбец 2 является столбцом забитых голов, а сортировка идет от минимальной к максимальной. 

Ключ -k позволяет выбрать столбец для сортировки, а ключ -t позволяет выбрать разделитель.

Чтобы по-настоящему радоваться, фанаты Данди Юнайтед могут отсортировать по столбцу 4 с помощью следующей команды:

сортировать -k4 -t, spl

Теперь Данди Юнайтед наверху, а Селтик — внизу.

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

сортировка -k4 -t, -r spl

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

Вы можете сделать это с помощью следующей команды:

сортировка -k4 -t, -R spl

Это может вызвать серьезные проблемы, если вы перепутали ваш ключ -r и ключ -R.

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

Месяц
Используемые данные
январь4G
февраль3000K
марш6000K
апрель100M
май5000M
июнь200K
июль4000K
августейший2500K
сентябрь3000K
октября1000K
ноябрь3G
Декабрь2G

Приведенная выше таблица представляет месяц года и объем данных, используемых на мобильном устройстве.

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

sort -k1 -t, datausedlist

Вы также можете отсортировать по месяцам, используя следующую команду:

sort -k1 -t, -M datausedlist

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

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

sort -k2 -t, -h datausedlist

Как отсортировать данные, переданные из других команд

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

Например, посмотрите на команду ls:

ls -lt

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

  • разрешений
  • количество узлов
  • имя пользователя
  • имя группы
  • размер
  • дата последнего доступа
  • имя файла

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

ls -lt | сортировка -k5

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

ls -lt | сортировать -k5 -r

Команду sort также можно использовать вместе с командой ps, которая выводит список процессов, запущенных в вашей системе.

Например, запустите следующую команду ps в вашей системе:

ps -eF

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

Чтобы отсортировать эти данные по размеру, вы должны использовать следующую команду:

ps -eF | сортировка -k5

Резюме

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

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

Ссылка на основную публикацию