在Mac OSX上的bash中,我有一个包含行
的文件(测试用例)x xx xxx
xxx xx x
但是当我执行命令
时for i in `cat r.txt`; do echo "$i"; done
结果不是
x xx xxx
xxx xx x
正如我想要的那样,而是
x
xx
xxx
xxx
xx
x
如何让回音给我'x xx xxx'?
答案 0 :(得分:25)
默认情况下,Bash for循环在所有空格上分割。您可以通过设置IFS
变量来覆盖它:
IFS=$'\n'
for i in `cat r.txt`; do echo "$i"; done
unset IFS
答案 1 :(得分:3)
根据建议设置IFS
或使用while
:
while read theline; do echo "$theline"; done <thefile
答案 2 :(得分:-1)
IFS="\n"
for i in `cat r.txt`; do echo "$i"; done
unset IFS