画像解析を行っている人ならば、一度は画像の振り分け作業に悩まされたことがあると思います。
私ももれなくその一人で、最近、あるプロジェクトにおいて、画像を分けなければならずしばらく放置していました。
しかし、よく考えてみたら、こういう「めんどくさい」けれども「単純な作業」こそ、コンピューターにさせるべき作業なわけです。
そこで、以下のようなスクリプトを考えてみました。コメントで何をしているか説明します。
#!/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
興味のある方は、こちらからダウンロードしてください。