カンマ区切り文字列を分割するキー・値形式入力フォーマット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
|
|