Используйте команду sort, чтобы изменить порядок данных в файлах с разделителями и из результатов других команд.
Эта утилита обычно устанавливается по умолчанию в основных дистрибутивах Linux .
Образец данных
Данные в файле сортируются, если они каким-либо образом разделены.
Например, возьмите итоговую таблицу лиг из шотландской Премьер-лиги на один год и сохраните данные в файле с именем spl . Создайте файл данных следующим образом с одним клубом и данными для этого клуба, разделенными запятыми в каждой строке.
команда | Забитые голы | Цели против | Точки |
---|---|---|---|
кельтский | 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 |
Гамильтон | 42 | 63 | 43 |
Килмарнок | 41 | 64 | 36 |
Данди Юнайтед | 45 | 70 | 28 |
Как отсортировать данные в файлах
Из этой таблицы видно, что «Селтик» выиграл чемпионат, а «Данди Юнайтед» вышел последним. Если вы болеете за «Данди Юнайтед», вы можете почувствовать себя лучше, и вы можете сделать это, сортируя по забитым мячам.
Запустите следующую команду:
сортировать -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