シェルスクリプトでCSVを解析してみた

CSVファイルを解析していろいろやりたくなったので、Mac環境で手軽に動かせるバッチファイルで実現することにしました。
書いたコードをメモがわりに置いておきます。

スポンサーリンク

こんなコード

#バッチファイルがある場所をカレントディレクトリにする
cd `dirname $0`
#解析中に「いま何行目なのか?」判別するのに使う
lineCount=0

#読みたいCSVファイルを指定(バッチファイルと同じフォルダ内に置いておく)
csvfile=filename.csv
#1行ずつ取り出す
for line in `cat ${csvfile}`; do
    #改行コードが末尾に入ることがあるので削除する
    line=`echo ${line} | sed -e "s/[\r\n]\+//g"`
    line=`echo ${line} | tr -d "s/[\r\n]\+//g"`

    #カンマ区切りで分割
    IFS_ORIGINAL="$IFS"
    IFS=,
    arr=($line)
    IFS="$IFS_ORIGINAL"

    #解析中に「いま何要素目なのか?」判別するのに使う
    paramCount=0
    #1要素ずつ取り出す
    for v in "${arr[@]}"; do
        #何行目の何要素目なのか確認したい時に使う
        #echo "[${lineCount}][${paramCount}] $v"

        #ここにやりたいことを書く!

        paramCount=`expr $paramCount + 1`
    done
    lineCount=`expr $lineCount + 1`
done

アカネの使い方

上記のコードを「.command」拡張子で保存し、Finder上でダブルクリックして使うことにして、CSVファイルの指定は決め打ちにしました。
最初に一度だけターミナルで実行権限をつけてあげる必要があります。
実行権限をつけるには、ターミナルを開いて下のコマンドを打ちましょう。

chmod u+x (commandファイル名)

コメント

スポンサーリンク