2015-12-01 72 views
1

在Unix shell中使用while循環讀取文件。代碼如下。While循環跳過Unix Shell腳本中的最後記錄

while IFS=, read V1 V2 
#Statement 
done<$FILE 

如果$ FILE包含N個記錄,則while循環會從文件中讀取N-1條記錄。

請提出解決方案。

+0

有奇數的記錄?因爲你一次讀兩個。 – Sobrique

+1

意圖是讀一行中的2個字段。它正在正確讀取一行中的2個字段,除了最後一行。 – TechVolcano

+1

最後一行是否有換行符? –

回答

0

如果最後一行沒有按'噸有一個換行符(默認read終止),那麼它將返回false最後一行和循環將終止。處理此問題的常規方法是使用IFS=, read V1 V2 || [ -n "$V1" ]作爲while循環條件...或僅確保您的文件是"有效的"文件幷包含最終換行符。 (還可以使用read -r,除非你知道你要read解釋反斜槓,你幾乎可以肯定不要'牛逼希望這樣。) –  伊坦賴斯納