シェルスクリプトを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、素晴らしすぎる。
おしまい
今度こそとても感謝してもらえた😊
GitHubリポジトリはこちら