たとえば、というファイルがあります。 charで5回5.jpg
名前を変更するにはどうすればよいですか?aaaaa.jpg
a
私はそれを試しましたが、名前がにrename -v 's/(\d{1,})/a{$1}/g' *
変わりましたが、それは私が望むものではありません。私は関数の2番目の部分が正規表現ではなく単に試みであることを知っています。5.jpg
a{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式で評価されるように右側の解釈を変更します。