IFSに改行のみを指定したい
$ cat ~/tmp/test.txt
banana 100 abc
apple 200 xyz
$ for i in `cat ~/tmp/test.txt`;do echo $i;done
banana
100
abc
apple
200
xyz
$export IFS="\n"
$for i in `cat ~/tmp/test.txt`;do echo $i; done
ba
a
a 100 abc
apple 200 xyz
タブ区切りのレコードを1行単位で取り出して処理したいのですが、見ての通りシェルのフィールドセパレータを"\n"
とするだけでは文字の"n"
も区切り文字となってしまいます。
意図通りに改行のみで区切るにはどうしたらいいのでしょうか。
上記はubuntu 15.04
で動作させたためbash
を使ってますが、できればOS間で共通に動作するシェルスクリプトに応用したいので、/bin/sh
でも扱える方法が分ると嬉しいです。
利用環境:
ubuntu 15.04
freebsd 10.2-stable
centos 6.7