2016-07-28 17 views
1

有人可以解釋爲什麼我的IFS語句將替換我的輸出文件中的字符嗎?爲了解決它,我需要改變什麼?我想讀通過線路輸入文件行(按記錄記錄),並完全忽視了IFS,但我不知道要放什麼東西,使我得到了什麼我插嘴說。.ksh中的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 

謝謝

回答

5

這不是一個literal newline - 你的字段分隔符是字面上的字符\(反斜槓)和n。您可以使用此:

IFS=' 
' 

this

IFS=$'\n' 
+1

'ksh'還支持ANSI-C引用:'IFS = $'\ n''。 – chepner

+0

謝謝。你在那做什麼?那是'接着一個新的行,然後是另一個'?我很困惑他們爲什麼分開行。 – markie1611

+0

chepner - 謝謝,這實際上是我最初的原因,當它導致問題(我重新輸入一切,因爲我的實際腳本在測試機器上沒有連接到任何其他公司互聯網,我忘了$。 – markie1611