IFS in .ksh直言不讳

时间:2016-07-28 13:37:31

标签: linux shell unix ksh vi

有人可以解释为什么我的IFS语句正在替换输出文件中的字符吗?为了解决这个问题,我需要改变什么?我想逐行读取一个输入文件(逐个记录),IFS完全被忽略,但我不知道该放什么,以便我把它放进去。

#!/bin/bash
SAVEIFS=$IFS
IFS='\n'
record="The rain in Spain"
record2="c:\user\user\document.txt"
echo $record
echo $record

我的输出正在取代我的所有小写字母' n'有空格的人物和我的' \'正在删除字符,而不是(我认为会发生)用新行分隔:

The rai  i  Spai
c: user user docume t.txt

提前致谢

1 个答案:

答案 0 :(得分:5)

这不是literal newline - 您的字段分隔符实际上是字符\(反斜杠)和n。你可以用这个:

IFS='
'

this

IFS=$'\n'