Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

カンマ区切りの文字列を配列に切り分けて処理する

カンマ区切りで複数行あるテキストファイル...たとえばcsvみたいなものを切り分ける方法です
rubyのsplitみたいな感じで配列に切り分ける方法です

$ head sample.txt 
hoge,huga,piyo
foo,bar,bazz
1,2,3

read -aをwhileでぶん回して配列にツッコみます。
...UNIXタツジンの言によればwhileは使わない方がいいらしいのですが...

$ IFS=","
$ head sample.txt | while read -d ',' -a Words; do printf "%5s + %5s = %5s\n" "${Words[0]}" "${Words[1]}" "${Words[2]}"; done
 hoge +  huga =  piyo
  foo +   bar =  bazz
    1 +     2 =     3

なお、IFSを別の記号にすればTabだろうが@だろうが何でもぶん回せます。