カンマ区切り文字列を分割するキー・値形式入力フォーマットtaro,10 hanako,8 jiro,9 while read LINE; do KEY=${LINE%,*}; VAL=${LINE#*,} echo DEBUG: $KEY echo DEBUG: $VAL done キー・値形式ならbashのパラメーター展開($FOO%,*}/$FOO#*,})を使う。 3カラム以上の形式1,taro,10 2,hanako,8 3,jiro,9 while read LINE; do _LINE=$(echo $LINE | sed -e 's/,/ /g') COLS=($_LINE) echo DEBUG1: ${COLS[0]} echo DEBUG2: ${COLS[1]} echo DEBUG3: ${COLS[2]} done 3カラム以上あるならbash配列を利用する。あらかじめスペース区切り以外の場合はsedでスペース区切りに変換する。但し、この方法は"2,,8"のようにカラムの値が空文字列の場合、結果が狂う。 指定した位置のカラムだけ取り出す - cutコマンド1,taro,10 2,hanako,8 3,jiro,9 while read LINE; do NAME=$(echo $LINE | cut -d , -f 2) echo DEBUG: $NAME done |
|