Как переименовать файлы со счетом?

Прошло некоторое время с тех пор, как вы спросили, но у меня была такая же проблема, и я получил ее.

Короткая версия

$ sudo rm /etc/fonts/conf.d/60-droid-sans-mono-fonts.conf (это просто символическая ссылка никакие фактические файлы конфигурации не будут потеряны).

Короткая версия

Пакет ttf-droid заменен на fonts-droid. При этом символическая ссылка 60-ttf-droid-sans-mono-fonts.conf в папке /etc/fonts/conf.d/ получила переименование в 60-droid-sans-mono-fonts.conf. Это означает, что конфигурация в этом файле теперь считывается перед любой конфигурацией в 60-latin.conf и тем самым переопределяет ее. Псевдоним шрифта Monospace (который по умолчанию используется в Yakuake и Kate) определяется как псевдоним DejaVu Sans Mono в 60-latin.conf, но Droid Sans Mono в 60-droid-sans-mono-fonts.conf. Кстати, этот шрифт не имеет жирной версии, по крайней мере, не файлов в пакете fonts-droid. Поэтому везде, где Yakuake и Kate должны делать жирные буквы, рендеринг возвращается к обычной версии шрифта.

Если вы не хотите менять систему настройки, вы можете вместо этого добавить свой собственный псевдоним Моношиба в ~ / .fonts.conf. Это должно работать:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <alias>
    <family>monospace</family>
    <prefer>
      <family>DejaVu Sans Mono</family>
    </prefer>
  </alias>
</fontconfig>

Вы можете посмотреть все файлы в файле /etc/fonts/conf.avail и man-странице fonts.conf, чтобы узнать, что еще вы можете поместить в свои .fonts. конф.

1
задан 27 December 2012 в 00:39

3 ответа

rename - инструмент командной строки, который позволяет переименовывать файлы, используя команду Perl для преобразования имени. Командой Perl, которая обычно используется в этом случае, является s/REGEXP/REPLACEMENT/.

Если я правильно интерпретирую ваш вопрос, вы хотите добавить ведущее 0 в именах, которые имеют менее 4 цифр, так что все имена в конечном итоге имеет 4 цифры. Это немного сложное выражение обрабатывает общий случай, когда у вас есть имена файлов с 1, 2 или 3 цифрами: он выравнивает все из них до 4 цифр. Модификатор e в конце заставляет замену интерпретироваться не как строку, а как выражение Perl. Это выражение повторяет цифру 0 столько раз, сколько необходимо, чтобы ввести число до 4 цифр.

rename 's/(?=([0-9]+)\.)/"0" x (4 - length($1))/e' *.png

Если файлы, которые вы хотите переименовать, имеют три цифры, есть более простые способы, такие как

rename 's/[0-9]+\./0$&/' *[!0-9][0-9][0-9][0-9].png

или

rename 's/(?<=[^0-9])[0-9]{3}\./0$&/' *.png
6
ответ дан 25 May 2018 в 06:32

С недавней версией bash вы можете написать:

for f in randomized_quad*.png; do
    if [[ $f =~ [1-9][0-9]* ]]; then
        new=$(printf "randomized_quad%04d.png" ${BASH_REMATCH[0]})
        [[ $f != $new ]] && mv -v $f $new
    fi
done
0
ответ дан 25 May 2018 в 06:32
[F1]
0
ответ дан 25 May 2018 в 06:32

Другие вопросы по тегам:

Похожие вопросы: