Похоже Cloud -Utils -Growpart был тем, что мне было нужно:
https://centos.pkgs.org/7/centos-x86_64/cloud-utils-growpart-0.29-2.el7.noarch.rpm.html
Перед заменой удалите суффикс .mp4
.
for f in *.mp4; do
fname=${f%.mp4}
mv -- "$f" "${fname//[^0-9]}.mp4"
done
Я добавил --
на случай, если ваши имена файлов начинаются с -
, и удалил echo
. Будь осторожен.
Вы правы, 4
появляется из расширения mp4
. Причина в том, что вы обрабатываете полное имя файла в инструкции ${f//[^0-9]/}
для удаления всех вхождений символов, не являющихся цифрами, включая часть .mp
и оставляя 4
в конце.
Вы можете использовать sed
для целей:
for f in *.mp4; do
newname="$(sed 's/^[^0-9]*//' <<< "$f")"
mv "$f" "$newname"
done
но обязательно протестируйте его (как вы, очевидно, делаете, как я вижу из вашего поста ).
Используя prename
, вы можете запустить что-то вроде
prename 's/^\D*//' *.mp4
примечания:
\D
не цифра ^\D*
последовательность нецифр в начале имени файла s/^\D*//
удалить начальные нецифры и переименовать В некоторых дистрибутивах Linux (, например.Ubuntu )эта команда называется rename
, а в других (, например. Арка)perl-rename
.