デフォルトでは空白、タブ、改行で区切るようになっているが、これを変更したい時がある。
一番お手軽なのは一時的にsedで区切り文字を空白に置き換えてしまうことだ。
1 | echo "hoge,fuga" | sed -e 's/,/ /g' |
シェルスクリプトの区切り文字を定義している
IFS 環境変数を変えるという手もある。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #!/bin/sh testspace= "hoge fuga" testcomma= "hoge,fuga" for val in ${testspace} do echo ${val} done for val in ${testcomma} do echo ${val} done IFS= ',' for val in ${testcomma} do echo ${val} done |
シェルの中だけの変更にとどめておけばほかのプログラムに影響はない!
なおsedでの区切り文字も/に限らず利用可能である。
下記ではsedの区切り文字に#を利用している。URLをsedで置換するときにはエスケープ不要なので#が便利!
1 | echo "hoge,fuga" | sed -e 's#,# #g' |