В предыдущей статье «Как использовать sort в Linux — часть 1» мы показали Вам 9 примеров применения команды sort
. Однако, они лишь частично охватывает возможности этой утилиты для сортировки файлов.
В этой статье мы покажем Вам 7 полезных и более интересных способов применения инструмента sort
в Linux.
Содержимое:
- Сортировка месяцев по календарю
- Сортировка вывода команды ls по размеру файлов
- Проверка того, отсортированы ли файлы
- Обработка файлов на основе разделителей
- Сортировка в случайном порядке
- Сортировка файлов с учетом верхнего регистра
- Объединение двух файлов и их сортировка
- Выводы
Сортировка месяцев по календарю
Допустим, у нас есть текстовый файл month.txt
. В нем записаны названия месяцев, расположенные в произвольном порядке. Наша задача — упорядочить их так, чтобы месяцы следовали друг за другом в том же порядке, что и в календаре. Для этого воспользуемся опцией -M
команды sort
:
Сортировка вывода команды ls по размеру файлов
Утилита ls
имеет опцию -l
, которая позволяет отобразить содержимое директории в длинном формате. В пятом столбце вывода содержатся размеры файлов и папок. Вы можете отсортировать результат вывода команды ls -l
по этому столбцу так, чтобы файл с наименьшим размером находился первым в списке. Например:
Читайте также: 15 примеров команды ls в Linux.
Проверка того, отсортированы ли файлы
Инструмент sort
также позволяет узнать, отсортировано ли содержимое определенного файла. Для такой проверки используется опция -c
. Например, у нас есть два файла sorted.txt
(его содержимое отсортировано) и month.txt
(не отсортирован). Давайте узнаем, так ли это:
На скриншоте выше видно, что для файла sorted.txt
утилита sort
не вывела ничего на экран. Значит этот документ отсортирован. А для файла month.txt
инструмент показал строку, с которой начинается неправильный порядок слов.
Обработка файлов на основе разделителей
По умолчанию команда sort
считает пробел разделителем слов в файле. Тем не менее, элементы в строках файла могут быть разделены другими символами (например, +
, -
, =
и так далее). Допустим, у нас есть файл delimiter.txt
, в котором слова разделены символами +
. Отсортируем содержимое этого документа на основе первого элемента (слова) из каждой строки:
Также давайте упорядочим этот файл по четвертому элементу:
Читайте также: 13 примеров команды cat для начинающих в Linux.
Сортировка в случайном порядке
С помощью инструмента sort
Вы можете сортировать содержимое файлов или вывод утилит в случайном порядке. Для решения этой задачи используется параметр -R
. Для примера упорядочим вывод команды ls -l
на основе пятого столбца случайным образом:
Если еще раз выполнить предыдущую команду, то результат будет совершенно другим:
Сортировка файлов с учетом верхнего регистра
В нашей ОС Linux есть файл test.txt
, в котором каждая строка содержит одно слово. Первые буквы этих слов имеют разный регистр. Просмотрим содержимое документа при помощи следующей команды:
При сортировке строк с одинаковыми словами, но разным регистром, по умолчанию команда sort
сначала выводит строки, начинающиеся со строчных букв, а затем — с прописных. Однако, Вы можете изменить эту логику так, чтобы сначала сортировались слова, начинающиеся с букв верхнего регистра, а затем — со строчных.
Для этого измените значение системной переменной LC_ALL
на С
. А затем выполните команду sort
:
На скриншоте видно, что результаты двух сортировок совершенно разные.
Читайте также: Как установить и отключить переменные локальной, пользовательской и системной среды в Linux.
Объединение двух файлов и их сортировка
Допустим, в нашей ОС есть два файла file1.txt
и file2.txt
. Выведем на экран их содержимое с помощью команды:
Как Вы могли заметить, оба файла имеют одинаковую структуру: в первом столбце записаны цифры от 1 до 5, во втором — обычные слова.
Например, нам нужно отсортировать оба файла по отдельности, а затем объединить их содержимое. Для этого можно воспользоваться такой командой:
Выводы
Мы разобрали несколько полезных примеров команды sort
, которые помогут Вам упростить работу с файлами. Надеемся, что эта статья была полезной для Вас!
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.