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ファイル名)
コメント