環境変数 IFS

設定する

IFS='
'

または

IFS=$(echo -en "\n")

または

IFS=$'\n'

$'string'について

bashのmanのクォート (quoting)の項を参考にする。 http://linuxjm.sourceforge.jp/html/GNU_bash/man1/bash.1.html#lbAQ

デフォルトの設定

IFS="$'\n'$'\t' "

設定の確認

$ echo $IFS | od -a
0000000  nl
0000001

使用例

以下のような3行からなるテキストファイルtxtがあるとする。

$ cat txt
123
4 56
7 8 9

IFSに改行タブスペースを設定した場合

$ IFS=$'\n\t '; for i in $(cat txt); do echo "DEBUG: " $i; done
DEBUG:  123
DEBUG:  4
DEBUG:  56
DEBUG:  7
DEBUG:  8
DEBUG:  9

IFSに改行のみを設定した場合

$ IFS=$'\n'; for i in $(cat txt); do echo "DEBUG: " $i; done
DEBUG:  123
DEBUG:  4 56
DEBUG:  7 8 9

IFSにスペースのみを設定した場合

$ IFS=$' ' ; for i in $(cat txt); do echo "DEBUG: " $i; done
DEBUG:  123
4
DEBUG:  56
7
DEBUG:  8
DEBUG:  9

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2012-01-07 (土) 13:51:50 (2360d)