Вот решение, которое мне помогло:
/etc/modprobe.d/radeon.conf
:blacklist radeon
/etc/modprobe.d/amdgpu.conf
следующие утверждения:options amdgpu si_support=1
options amdgpu cik_support=1
После этого сообщение об ошибке исчезло.
Возможно, было бы проще манипулировать списком файлов с помощью sed
, чтобы захватить последнее поле и добавить его в начало:
sed -e 's/^.*-\([^-]*\)\.[^.]*/\1-&/g'
Теперь вы можете сортировать по первому полю фальшивого «имени файла», а после сортировки можно удалить лишние данные с помощью cut
, пропуская первое поле.
cut -f2- -d-
Так:
ls | sed | sort | cut
Я создал этот небольшой каталог и потрогал в нем несколько файлов нулевой -длины:
Oct 17 01:06.
Oct 17 01:06..
Oct 17 01:06 201-ventosa-title-001.png
Oct 17 01:06 201-ventosa-title-002.png
Oct 17 01:06 201-ventosa-title-12.png
Oct 17 01:06 201-ventosa-title-17.png
Oct 17 01:06 201-ventosa-title-356.png
Oct 17 01:06 201-ventosa-title-91.png
Oct 17 01:06 333-ventosa-longer-title-this-time-77.jpg
ls | sed -e 's/^.*-\([^-]*\)\.[^.]*/\1-&/g' | sort -rn | cut -f2- -d-
дает, как и ожидалось,
201-ventosa-title-356.png
201-ventosa-title-91.png
333-ventosa-longer-title-this-time-77.jpg
201-ventosa-title-17.png
201-ventosa-title-12.png
201-ventosa-title-002.png
201-ventosa-title-001.png
(Удаление опции "r" из сортировки меняет порядок ).
Обратите внимание, что элемент «77» позиционируется правильно, даже если число находится в другом поле.
Оболочка zsh
имеет параметр оболочки с именем NUMERIC_GLOB_SORT
. По умолчанию шаблоны подстановки сортируются по номерам.
Из не-zsh
снаряда:
zsh -o NUMERIC_GLOB_SORT -c 'printf "%s\n" /home/flora/edvart/docs/*.png'
или, используя квалификатор (n)
glob, чтобы включить эту опцию оболочки только для данного шаблона,
zsh -c 'printf "%s\n" /home/flora/edvart/docs/*.png(n)'
Или передать шаблон в качестве аргумента вместо жесткого -кодирования его в zsh -c
скрипте. Обратите внимание, что шаблон должен быть заключен в кавычки.
zsh -c 'printf "%s\n" ${~1}(n)' zsh '/home/flora/edvart/docs/*.png'
Тестирование:
$ ls -d *.png
schimmel-04.png schimmel-08.png schimmel-11.png schimmel-3.png
schimmel-05.png schimmel-09.png schimmel-12.png
schimmel-06.png schimmel-1.png schimmel-13.png
schimmel-07.png schimmel-10.png schimmel-2.png
$ zsh -c 'printf "%s\n" ${~1}(n)' zsh '*.png'
schimmel-1.png
schimmel-2.png
schimmel-3.png
schimmel-04.png
schimmel-05.png
schimmel-06.png
schimmel-07.png
schimmel-08.png
schimmel-09.png
schimmel-10.png
schimmel-11.png
schimmel-12.png
schimmel-13.png
Если у вас есть дополнительные номера в пути к каталогу, это все равно будет работать, учитывая, что числа в пути к каталогу одинаковы.
Проблема возникла из-за того, что я использовал mawk 1.3.3 -17. Версия 1.3.4 или более поздние версии могут использовать \0 в качестве разделителя записей со значением "нулевой символ". Старые выпуски mawk, BSD awk, Busybox awk, Plan 9 awk и т. д. все обрабатывают строку \0
в RS
так, как если бы RS
была пустой строкой, т. е. включается «режим абзаца» (двойной перевод строки разграничить записи ).