次のように名前を変更したい画像がたくさんあります。
*.png.png --> *.png
*.jpeg.jpg --> *.jpg
*.JPEG --> *.jpg
これまで試してきた唯一のことですが、うまくいかないことを知っていますが、mv *.png.png *.png
とにかく危険を冒しました。
このパターンを使用してファイル名をまとめて変更する簡単な方法はありますか?
ベストアンサー1
あなたの質問に対する3つのケースのためのシェル専用ソリューションは次のとおりです。
for f in *.png.png ; do mv -i "${f}" "${f%.png}" ; done
for f in *.jpeg.jpg ; do mv -i "${f}" "${f%.jpeg.jpg}.jpg" ; done
for f in *.JPEG ; do mv -i "${f}" "${f%.JPEG}.jpg" ; done
ファイル名を変更するディレクトリに入力します。
代替の postfix スクリプト形式でこれらのソリューションを一般化するには、次のようにします。
#!/bin/sh
from=${1:?} to=${2:?}
for f in *${from} ; do mv -i "${f}" "${f%${from}}${to}" ; done
そして、置き換えるサフィックスと新しいサフィックスという2つのパラメータを使用してスクリプトを呼び出します。