名前変更正規表現がファイルの名前変更に失敗しました

名前変更正規表現がファイルの名前変更に失敗しました

1.jpg 2.PNG 3.gif 4.jpegディレクトリ内に のような画像がたくさんあります。 これらすべての名前を に変更したいです1-s.jpg 2-s.PNG 3-s.gif 4-s.jpeg

以下のコマンドを実行してみましたが、ディレクトリ内のファイルには効果がありませんでした。

rename 's/^(\d+)\.(.*)/$1-s.$2/' .
rename 's/^(\d+)\.(.+)/$1-s.$2/' .
rename 's/.*\.(.+)/$1-s.$2/' .

何を間違えたのでしょうか?

答え1

ファイル名にはワイルドカードを使用します*:

rename 's/^(\d+)\.(.*)/$1-s.$2/' *

少し簡略化することもできます:

rename 's/^(\d+)(?=\.)/$1-s/' *

ここで、(?=\.)数字の後にドットがあることを確認する肯定的な先読みですが、それをキャプチャしません。

関連情報