IT技術で仕事を減らしたい!

ITエンジニアのメモ+α

macOS bashのバッチ処理(commandファイル)

どうも、nippa です。

今回は macOS での バッチ処理用の command 拡張子ファイルについてまとめたいと思います。

command 拡張子ファイルは自動でターミナルの起動し、shell の内容を実行してくれます。

簡単な作業で Finder からクリックで実行したいときに便利です。

今回は bash を使って試していきたいと思います。

環境

command 拡張子ファイルについて

command 拡張子ファイルは macOS のバッチファイルになります。

ターミナルを開いてコマンドを打ち込むことが面倒な作業を Finder からファイルをクリックするだけで実行可能です。

例えば、ルールに従ったファイル名の書き換え等にはとても便利です。

command 拡張子ファイルの実行例:ファイル名の修正処理

今回、フォルダに入っているファイル名の先頭に文字列を追加するバッチ処理を作成してみたいと思います。

フォルダに入れたファイルの先頭に00_をつける処理をバッチで行ってみます。

バッチ処理の作成

prefix.commandというファイル名で作成していきます。

#!/bin/bash

DIR='Path' #path
FILE='prefix.command'

fs=$(ls ${DIR} | grep -v 00_* | grep -v ${FILE})

for f in $fs ; do
    mv "${DIR}/${f}" "${DIR}/00_${f%%*/}"
done

unset DIR
unset fs
unset f
exit 0

バッチ処理を実行する際は、ターミナルにログインしホームディレクトリで実行されます。

そのため、絶対パスで処理することをおすすめします。

また、クリックで実行するためには、バッチ処理ファイルには実行権限をつけて置く必要があります。

chmod 744 prefix.command

テストファイルの作成

以下の bash コマンドでファイルを 5 つ作成します。

i=0; while [ $i -lt 5 ] ; do ; touch "file${i}.txt" ; i=$((++i)); done

以下の 5 つの空のファイルが生成されます。

file0.txt
file1.txt
file2.txt
file3.txt
file4.txt

バッチ処理の実行

Finder からprefix.commandをクリックで実行するとファイル名の先頭に00_が追加されます。

00_file0.txt
00_file1.txt
00_file2.txt
00_file3.txt
00_file4.txt

感想

command ファイルを使えば bash で簡単なバッチ処理を行うことができます。

日頃の面倒だと感じる作業をこれでバッチ化してみてはいかがでしょうか。

ではでは、また次回。