Из этого руководства вы узнаете, как сортировать данные в файлах с разделителями и выводить другие команды.
Вы не удивитесь, узнав, что команда, которую вы используете для выполнения этой задачи, называется «сортировать». Все основные параметры команды 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 нет ничего особенного, но она может стать очень полезной при сортировке выходных данных из других команд в значимом порядке, особенно когда у команды нет собственных переключателей сортировки.
Для получения дополнительной информации прочитайте справочные страницы для команды сортировки.