環境変数 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