2013-05-18 57 views

回答

7

如果youre在有關文件中的最後\n疑問,你可以試試:

while read p; do 
echo $p 
done < <(grep '' file.txt) 

的grep是不挑剔的行結束)

您可以使用grep . file.txt跳過空行...

3

cat file.txt並查看最後一行是否在最後一行的末尾有新行。 如果它不那麼while read p ; do echo $p done < file.txt不會回顯的最後一行換上新線在文本文件中的最後一行的末尾

6

那麼最後一行不包含換行符,一其他答案已經指出。但是讀命令實際上設置了p變量,然後不是返回成功,而是返回文件錯誤的結尾。所以這個錯誤會阻止循環執行。你仍然可以使用p變量,它包含了文件

while read -r p || [[ -n "$p" ]] 
do 
echo $p 
done < file.txt 

這使得2個條件進行測試,與,或僅當第一失敗,第二個被執行的最後一行。所以,當最後一行會導致read文件錯誤結束時,我們將檢查p是否已設置。如果是,我們將使用它。