readコマンドはシェルスクリプト書くなら基本っぽい.
基本的に行指向で取り込んで,区切り文字ごとにフィールドで分けて勝手に変数に取り込んでくれる.
read [1フィールド目を入れる変数] [nフィールド目を入れる変数] ...
といった感じ. 区切り文字は特殊変数IFSで決める.
簡単な例
twinbird@:~/lab$ while read line > do > echo "$line" > done << END > HELLO, > WORLD. > > Good > Bye > END HELLO, WORLD. Good Bye
これは全ての行を1行ずつ読み込んでechoしているだけ.
(データの入力にはヒアドキュメントを使っている)
もう少し込んだ例
下記のファイルがあるとして
twinbird@:~/lab$ more members.txt hiro,male,1991/06/10 hanako,female,1982/03/14 mika,female,1982/12/03
下記で簡単にカンマ区切りでデータを取得できる.
(CSVだとダブルクオーテーションの処理とかが面倒で,これだけではダメだが)
twinbird@:~/lab$ IFS=',' twinbird@:~/lab$ while read name sex birthday > do > echo "Name:$name" > echo "Sex :$sex" > echo "Birthday:$birthday" > done < members.txt Name:hiro Sex :male Birthday:1991/06/10 Name:hanako Sex :female Birthday:1982/03/14 Name:mika Sex :female Birthday:1982/12/03
オプション
詳細は例によってここで.
ここで見てもrオプションは使えると見て良さそう.
使いそうなのはrとtかなぁ.