「名前の変更」では、ファイル名にいくつかの文字を追加できますか?

「名前の変更」では、ファイル名にいくつかの文字を追加できますか?

たとえば、というファイルがあります。 charで5回5.jpg名前を変更するにはどうすればよいですか?aaaaa.jpga

私はそれを試しましたが、名前がにrename -v 's/(\d{1,})/a{$1}/g' *変わりましたが、それは私が望むものではありません。私は関数の2番目の部分が正規表現ではなく単に試みであることを知っています。5.jpga{5}.jpg

答え1

Linuxの世界には想像力豊かな名前を持つ3つのユーティリティがあります。(1)rename(1)以下util-linuxはに含まれていますUnicode::Tussle。私が知っている限り、欲しいものはうまくutil-linuxいきませんrename(1)。ただし、Perlスクリプトを使用して実行できます。

rename -n 's/(\d+)/"a" x $1/e' 5.jpg

出力:

rename 5.jpg aaaaa.jpg

-n実際にファイル名を変更したい場合は削除してください)。

答え2

renameファイル名を変更するために式を使用している場合(そして大きい場合)、次のように必要なものperlを取得できます。

rename 's/(\d+)/"a" x $1/e' *

このeフラグはで説明されていますperldoc perlre。これは、Perl式で評価されるように右側の解釈を変更します。

関連情報