$ 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