【備忘録】Macのkeynoteで書き出した連番の画像名を一括変更する場合

【問題】keynoteから書き出すと「title. 001.png」みたいになる問題

keynoteの設定で変えられるのかわかりませんが、keynoteで各シートを画像として書き出すと連番でネーミングしてくれますが、以下のように微妙なドットとスペースがついて気持ち悪いです。

title. 001.png
title. 002.png

で、ターミナルで一括変換の方法を・・・メモ

■STEP1 書き出した画像フォルダに移動
該当フォルダを右クリックしてoptionを押して「パス名をコピー」する

cd /Users/●●●●/Downloads/titleimage

■STEP2 新しいシェルスクリプトファイルを作成
rename_files.shを作成します。

touch rename_files.sh

■STEP3 スクリプトファイルをテキストで開いてプログラムを書きます
rename_files.shをテキストで開いて以下を書いて保存します。
※画像名(以下の「titleimage」)はkeynoteで保存した時の名前を・・

#!/bin/bash

# 変更前のファイル名のパターン
old_pattern="titleimage."

# フォルダ内のすべての.pngファイルに対して処理を実行
for file in *titleimage.*.png; do
    # 新しいファイル名を生成し、UTF-8エンコーディングでリネーム
    new_name="titleimage${file//$old_pattern/}"  # ファイル名の先頭にtitleimageを追加し、old_patternを削除
    new_name=$(echo "$new_name" | iconv -f UTF-8 -t UTF-8)  # UTF-8エンコーディングでリネーム
    # ファイル名を変更
    mv "$file" "$new_name"
done


■STEP4 ターミナルでスクリプトを実行可能に設定します。
これしないと、zsh: permission denied: ./rename_files.shってでますね。

chmod +x rename_files.sh

■STEP5 スクリプトを実行します

最後に以下を実行。
検索したファイル名が間違っていると
mv: rename titleimage.*.png to .*.png: No such file or directory
みたいなエラーがでます。

./rename_files.sh

で、リネームされる・・・はず!
されてなければ再度やりなおしてみましょう。



以上。
これは便利!