csvの空行・コメント行・コメント部分を除外して、配列に格納する
CSVファイルのコメント行・空行をスキップし、コメント部を削除して、各レコードを配列に格納するスクリプトです。
・行"aaa,bbb ccc,ddd"を分割して、2列目の値「bbb ccc」がスペースで区切られないこと。←これは対応したが
・"aaa,,ccc"で、「ccc」が3列目の値として取得できること。←これはまだ
#!/bin/ksh typeset -r INFILE="./sample.csv" typeset -r DLMTR="," # # Read Table Data # awk -F${DLMTR} '/^[\x20\t]*($|#.*$)/ {next} {sub("#.*", "") } {print $0}' $INFILE | \ while read LINE do # # Split Line To Array # LINE=`echo ${LINE} | tr -s " " "#"` LINE=`echo ${LINE} | tr -s $DLMTR " "` LINE=(${LINE}) for((i=0; i<${#LINE[@]}; i++)) do LINE[$i]=`echo ${LINE[$i]} | tr "#" " "` done # # Main Proc # echo -n "num of elment is "${#LINE[@]} echo ${LINE[@]} # # Volatile Read Buffer # unset LINE done