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

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

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

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

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

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

команда
Забитые голы
Цели против
Точки













Celtic 93 31 86
Абердин 62 48 71
Сердца 59 40 65
Сент-Джонстон 58 55 56
Мазервел 47 63 50
Росс Каунти 55 61 48
Атак 54 48 52
Dundee 53 57 48
Partick 41 50 46
Hamilton 42 63 43
Килмарнок 41 64 36
Данди Юнайтед 45 70 28

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

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

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

 sort -k2 -t, spl 

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

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

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

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

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

 sort -k4 -t, spl 

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

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

 sort -k4 -t, -r spl 

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

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

 sort -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 | sort -k5 -r 

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

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

 ps -eF 

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

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

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

Резюме

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

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

Оцените статью
Solutics.ru
Добавить комментарий