Automator で Mac での定型作業の効率化を試みる

繰り返し作業は自動化してしまいたい

普段の仕事は Windows を使っていて、そちらは毎日の定型作業だったりデータ加工だったりは自作のスクリプトなどでできるだけ楽をしています。しかし、最近は割と外で仕事をする機会も増えて、かといって会社でこなしている作業も並行して処理しないといけなかったりで、持ち運んでいる MacBook Pro の側でも定型作業については自動化を進めていきたいと思い立った今日この頃。

Automaterによる自動化で効率アップ!

Automator を使えば良い感じにできる?

そもそも Automator の名前はずいぶん前から知っては使っていたのですが、覚えようとしたことがなかったという……。そして、いざ使い方を調べようとしてみたのですが、なかなか分かりづらい。Apple サポートページを見てみてもぱっと使えるようにはなれなそうな気が。

公式ページ以外にも、いくつかのサイトを見つつ、簡単な作業から自動化を試みました。

タブ区切りのテキストファイルをコンマ区切りに変換するクイックアクションを作成する

まずは、MacBook Pro でもよく行う作業としてタブ区切りのテキストファイルのタブ文字をコンマに置換してCSVファイルを作成するという処理を自動化してみました。とあるサービスから出力されるデータがTSV形式なのですが、それを取り込む側のサービスがCSV形式を要求しているため、いちいちテキストエディタで置換したりしていたのを楽してみます。

クイックアクションの作成

シェルスクリプトをクイックアクション化する

作成する書類でクイックアクションを選択してクイックアクションの作成を行います。Finderなどからファイルを選択して右クリックメニューを表示した中にある「クイックアクション」に独自の機能を追加できます。

今回は、入力されたファイルをawkを使ってタブ文字からコンマへの置換を行う以下のスクリプトを利用します。拡張子.txtのファイルを拡張子.csvとして保存する決め打ちです。

OUTPUT=${1/.txt/.csv}
cat $1 | awk 'gsub(/\t/,",")' > ${OUTPUT}

アクションからシェルスクリプトの実行を選択します。検索でシェルスクリプトと入力するか、ライブラリ内のユーティリティを選択すると該当の「シェルスクリプトを実行」が表示されます。それをダブルクリックすると右側部分に「シェルスクリプトを実行」が追加され、実際にスクリプトを記述して機能を作成します。各種パラメータは画像の通りですが、

  • ワークフローが受け取る現在の項目……ファイル
  • 検索対象……Finder
  • イメージ……アクション(機能によってアイコン画像を変えると良いのかも)
  • カラー……ブラック
  • シェル……/bin/bash
  • 入力の引き渡し……引数として

Finderからファイル名を引数として渡して処理してやる形なので、実際はターミナルからシェルスクリプトを実行しても同じ処理はできるのですが、GUIから操作ができるのはお手軽感があります。

クイックアクションの登録

機能拡張のFinderにクイックアクションを追加

保存したクイックアクションはシステム環境設定内の機能拡張から登録できます。Finderの項目に作成したクイックアクションが表示されるのでチェックを入れてやるとFinderから使用できます。

作成したクイックアクションがFinderから実行可能になります

以上、試行錯誤しながらですがなんとなく使い方が分かりました。単純な処理ですが、面倒がなくなるだけでずいぶんと気が楽になるものです。他にも単純作業でも繰り返し行っているものがあったらどんどん自動化していきたいですね。