Поиск по сайту:

7 интересных примеров команды sort в Linux — часть 2


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

Прежде чем продолжить, создайте текстовый файл с именем «month.txt» и заполните его данными, представленными ниже.

echo -e "mar\ndec\noct\nsep\nfeb\naug" > month.txt
cat month.txt

15. Сортировка содержимого файла по месяцам

Следующая команда сортирует содержимое файла «month.txt» в хронологическом порядке на основе аббревиатуры или названия месяца, используя параметр '-M', который указывает 'sort', чтобы рассматривать данные как даты и соответствующим образом сортировать их.

sort -M month.txt

16. Сортировка вывода по размеру файла в удобочитаемом формате

Следующая команда объединяет команды «ls» и «sort» для выполнения двух задач. Сначала он перечисляет содержимое домашнего каталога пользователя в длинном формате, а затем передает этот список каталогов команде sort для печати размеров файлов в удобочитаемом формате, что упрощает идентификацию самых больших и самых маленьких файлов в каталог.

ls -l /home/$USER | sort -h -k5

17. Проверка отсортированных файлов на целостность

В предыдущей статье мы создали два текстовых файла: «sorted.txt» в примере № 4 и «lsl.txt» в примере № 6. Мы знаем, что « sorted.txt» уже отсортирован, а «lsl.txt» – нет.

Чтобы проверить статус сортировки обоих файлов, мы воспользуемся командой «sort», которая позволит нам убедиться, что «sorted.txt» находится в правильном порядке и требует ли «lsl.txt» сортировки.

sort -c sorted.txt

Если он возвращает 0, это означает, что файл отсортирован и конфликта нет.

sort -c lsl.txt

18. Обработка разделителей при отсутствии пробелов в файле

Если разделитель (разделитель) между словами представляет собой пробел, команда sort автоматически интерпретирует все, что находится после горизонтального пробела, как новое слово. Но что произойдет, если разделителем не будет пробел?

Рассмотрим текстовый файл, содержимое которого разделено чем-либо, кроме пробела, например '|' или '\' или . '+' или '.' или ...

Создайте текстовый файл, содержимое которого будет разделено +. Используйте команду cat, чтобы проверить содержимое файла.

echo -e "21+linux+server+production\n11+debian+RedHat+CentOS\n131+Apache+Mysql+PHP\n7+Shell Scripting+python+perl\n111+postfix+exim+sendmail" > delimiter.txt
cat delimiter.txt

Теперь отсортируйте этот файл по 1-му полю, которое является числовым.

sort -t '+' -nk1 delimiter.txt

Второй основан на 4-м поле, которое не является числом.

Если разделителем является Tab, вы можете использовать $'\t' вместо '+', как показано в приведенном выше примере.

19. Случайная сортировка вывода по размеру файла

Отсортируйте выходные данные команды ls -l для вашего домашнего каталога на основе пятого столбца, который представляет «объем данных», в случайном порядке.

ls -l /home/avi/ | sort -k5 -R 

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

Как ясно из Номер правила – 2 из последней статьи, команда sort предпочитает строки, начинающиеся с символов нижнего регистра, а не с символов верхнего регистра. Также проверьте пример 3 в последней статье, где строка «ноутбук» появляется перед строкой «НОУТБУК».

20. Переопределение настроек сортировки по умолчанию

Как переопределить настройки сортировки по умолчанию? Прежде чем мы сможем переопределить настройки сортировки по умолчанию, нам нужно экспортировать переменную среды 'LC_ALL' в 'C'.

Для этого запустите приведенный ниже код в командной строке.

export LC_ALL=C

А затем отсортируйте текстовый файл «tecmint.txt», переопределив настройки сортировки по умолчанию.

sort tecmint.txt

Не забудьте сравнить результат с тем, который вы получили в примере 3, а также вы можете использовать опцию '-f', также известную как '--ignore- case', чтобы получить более организованный вывод.

sort -f tecmint.txt

21. Объединение двух входных файлов за одну операцию

Как насчет запуска функции sort для двух входных файлов и их объединения за один раз?

Давайте создадим два текстовых файла, а именно «file1.txt» и «file2.txt», и заполним их некоторыми данными. В «file1.txt» мы добавим числа, как показано ниже. Мы также будем использовать команду cat для проверки содержимого файла.

echo -e “5 Reliable\n2 Fast\n3 Secure\n1 open-source\n4 customizable” > file1.txt
cat file1.txt

И заполните второй файл «file2.txt» некоторыми данными как.

echo -e “3 RedHat\n1 Debian\n5 Ubuntu\n2 Kali\n4 Fedora” > file2.txt
cat file2.txt

Теперь отсортируйте и объедините вывод обоих файлов.

join <(sort -n file1.txt) <(sort file2.txt)

Заключение

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

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

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