我注意到有一段时间了,如果一个文件的末尾没有"换行符",read
永远不会读取该文件的最后一行。如果考虑到在文件中没有"换行符"等于它包含0行(这是相当难以接受的!),这是可以理解的。例如,看下面的示例:
$ echo 'foo' > bar ; wc -l bar
1 bar
但是...
$ echo -n 'bar' > foo ; wc -l foo
0 foo
问题是:当使用read
处理那些我没有创建或修改过,并且我不知道它们是否以“换行”字符结尾的文件时,我该如何处理这种情况?
read
命令可以很好地读取那个未终止的最后一行。问题在于在循环中使用其返回值 - 请参见我的答案。 - kopischke