画像ファイル振り分けスクリプト

画像解析を行っている人ならば、一度は画像の振り分け作業に悩まされたことがあると思います。
私ももれなくその一人で、最近、あるプロジェクトにおいて、画像を分けなければならずしばらく放置していました。

しかし、よく考えてみたら、こういう「めんどくさい」けれども「単純な作業」こそ、コンピューターにさせるべき作業なわけです。

そこで、以下のようなスクリプトを考えてみました。コメントで何をしているか説明します。

#!/bin/sh

#filesorter.sh
#sort files according to the sorting list
#Usage: filesorter.sh sorting_list
#You need to prepare a sorting list beforehand.
#It should be like the following.
# img001  HC
# img002  PT
# img003  HC
# img004  PT
# img005  PT

#引数が指定されているかチェック
if [ $# -ne 1 ]; then
	echo "A sorting file should be specified!"
	echo "Usage: $0 sorting_file"
	echo "Sorting file includes ID and Categorized Group"
	echo "example:"
	echo "img001  HC"
	echo "img002  PT"
	echo "img003  HC"
	echo "img004  PT"
	echo "img005  PT"

	exit 1
fi

#ファイルを読み込み、空白行を削除し、1行ずつ$lineにセット
cat $1 | sed '/^$/d' | while read line
do
    #AWKを使って、第1フィールドを変数idにセット
    #第2フィールドを変数categoryにセット
    id=`echo $line | awk '{ print $1 }'`
    category=`echo $line | awk '{ print $2 }'`
	
    #変数categoryの名前に相当するディレクトリがなければ作成
    if [ ! -e $category ]; then
        mkdir $category
    fi

    #変数idを含むファイルを先ほど作成したディレクトリにコピー
    echo "copy $id to $category"
    cp *${id}* $category
done

興味のある方は、こちらからダウンロードしてください。

Print Friendly, PDF & Email

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください