• 追加された行はこの色です。
  • 削除された行はこの色です。
* カンマ区切り文字列を分割する [#ae47d088]

** キー・値形式 [#idae88ba]
*** 入力フォーマット [#oe3cc874]
 taro,10
 hanako,8
 jiro, 9
 jiro,9

 while read LINE; do
    KEY=${LINE%,*};
    VAL=${LINE#*,}
    echo DEBUG: [ $KEY][ $VAL ]
    echo DEBUG: $KEY
    echo DEBUG: $VAL 
 done
キー・値形式ならbashのパラメーター展開($FOO%,*}/$FOO#*,})を使う。

** 3カラム以上の形式 [#z67d7be2]
 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コマンド [#ja42d3f0]
 1,taro,10
 2,hanako,8
 3,jiro,9
 while read LINE; do
    NAME=$(echo $LINE | cut -d , -f 2)
    echo DEBUG: $NAME
 done


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS