Существует сценарий Perl, который уже может быть в вашей системе и называется rename
или prename
.
rename 's/\d\d$/0$&/' foo*
Если вы выполните это несколько раз, он продолжит вставлять нули. Чтобы предотвратить это, эта версия переименовывает только файлы, заканчивающиеся двумя цифрами (с предшествующим хотя бы одной нецифровой):
rename 's/([^\d])(\d\d)$/${1}0$2/' foo*
s///
- команда замены
\d
обозначает цифру
$&
в первом примере обозначает все, что совпало между первыми двумя косыми чертами (в данном случае две цифры)
[^\d]
обозначает все символы ([]
), которые не являются (^
) цифрами (\d
)
${1}
обозначает то, что было найдено в первом наборе скобок (не цифра), скобки устанавливают "1" из буквального "0"
$2
соответствует тому, что было найдено во втором наборе скобок (две цифры), здесь скобки не нужны, но вы можете использовать их