副題: シェルスクリプトをMacアプリにできるAutomatorが凄い!
アプリのダウンロードはこちら
すべてのはじまり
デザイン部の社員から「約600個の画像の名前を一括で変更したい。変更前と変更後のファイル名はExcelシートにまとまっている」と相談された。
ちなみに今までは全部人力で名前変更していたらしい。そ れ は ヤ バ イ 。
その社員はMacだったので、mvコマンドをスプレッドシートで生成し、それをコピペしてターミナルに貼ってもらう方法を提案した。
【参考】Macでファイル名変更リストを作成して、ターミナルから大量ファイルを一発でリネームする方法!
このやり方を直接レクチャーし、とても喜んでもらえた。私は満足して退勤し、お酒を飲んで寝ようとした。
が、
......
寝られないのである。
なんだろう......このモヤモヤする気持ちは......
#エンジニアでない人にターミナルを起動させるのは、負けではないか。
私はそう思ったのである。
エンジニアの端くれとして、このまま寝るわけにはいかない。
というわけでMacアプリを作る
1. Bashを書く
まずはささっとBashを書く。
引数は2つ。CSVファイルのパスと対象ディレクトリのパス。
返り値はリネーム後のファイルが入ったディレクトリのパス。
やりたいことは「リネーム」だが、実際にはcpコマンドでコピーして元ファイルを残すようにした。
CSV_FILE=$1
FILE_DIR=$2
NEW_FILE_DIR=${FILE_DIR}_$(date +"%Y%m%d_%H%M%S")
mkdir $NEW_FILE_DIR
for row in $(cat $CSV_FILE)
do
col1=$(echo "$row" | cut -d ',' -f 1)
col2=$(echo "$row" | cut -d ',' -f 2)
cp "${FILE_DIR}/${col1}" "${NEW_FILE_DIR}/${col2}"
done
echo "$NEW_FILE_DIR"
2. AutomatorでMacアプリにする
Automatorを起動
新規作成の画面で「アプリケーション」を選ぶ
以下ではこの画面でビジュアルプログラミングしていく
まずは「ファイルを開く」ダイアログを2つ用意し、
その2つを引数にシェルスクリプトを実行させ、
結果をFinderで表示する。
まとめると以下の通り。
さらに確認画面をいくつか追加した。キャンセルを押せばアプリを途中で終了できるので便利。
Appとして書き出せば...
完成!
動作確認をする。作成したアプリをクリックしたら、
まずはCSVの選択画面が出て、
次にフォルダの選択画面が出て、
リネーム後のファイルが表示される。完璧!
誰でもかんたんにMacアプリが作れるAutomator、素晴らしすぎる。
おわり
デザイン部に公開したらめちゃくちゃ感謝してもらえた😊
ダウンロードと使い方はこちら