Bash - "Image(x).png" ファイルの名前を変更する

Bash -

Image.png、、、Image (2).pngなどのWindowsスキャンファイルがたくさんあります... Image (19).png

Image01.png ... Image19.png変換コマンドに投げてimagemagick出力PDFに順次ページングするように名前を変更する必要があります。

これは私が使用したコマンドです。

ls * | awk '{print "mv \""$0"\" \"2"$0"2\"" }' | sed -e 's/2Image (/Image0/' | sed -e 's/).png2/.png/' | sed -e 's/[0-9]\([0-9][0-9]\)/\1/' | sed -e 's/2Image.png2/Image01.png/' | sh

2これはうまくいきますが、名前変更操作を実行するためにランダムな文字を挿入するなど、汚れたまたはバグのあるプレースホルダを使用しないよりきれいな方法があります。

ベストアンサー1

rename 's/^Image\.png$/Image01.png/ || s/^Image\s+\((\d+)\)\.png$/sprintf "%s%02d.png", "Image", $1/e' *.png

方法

  • このrenameユーティリティは、あなたのシナリオに最適な選択です。作業モデルは次のとおりです。ファイル名のリストを取得し、Perl各ファイル名に有効な変換を適用すると、変換結果はファイル名の新しい名前になります。
  • s/^Image.png$/Image(01).png/ => Image.png ファイルの処理に使用されます。
  • s / ^ Image \ s +((\ d +))します。閉じ括弧).pngで終わります。

おすすめ記事