bash でカンマ区切り文字を split して変数に代入
2011-2-1 22:09
bash のシェルスクリプト内で、カンマ区切りテキストを分割して変数に入れたい場合。Perl や PHP の split みたいな動作をさせる方法です。
IFS 変数に区切り文字をセットしたうえで set コマンドを使用します。
#!/bin/bash TEXT='AAA,hoge,2345' IFS=',' set -- $TEXT echo $1 echo $2 echo $3
set コマンドはタブや空白区切りの値を $1, $2, $3, ……に代入します。IFS を変更することによりカンマ区切りに対応できます。
もしくは tr コマンドでカンマを空白に置き換えて配列に代入します
#!/bin/bash TEXT='BBB,データ,3456' arr=( `echo $TEXT | tr -s ',' ' '`) echo ${arr[0]} echo ${arr[1]} echo ${arr[2]}
なんか
VAR1=`echo ${LINE} | cut -d ',' -f 1` VAR2=`echo ${LINE} | cut -d ',' -f 2` VAR3=`echo ${LINE} | cut -d ',' -f 3` ……
みたいなコードをループ中に書いていた人がいたのでもうちょっとスマートにしてほしかったわけです。
コメントはまだありません
No comments yet.
Sorry, the comment form is closed at this time.