我有一个在最后一行末尾没有 EOL 的文件。当我从中读取的 bash 脚本没有处理最后一行时,我注意到了这一点。
我是这样读的:
while read LINE
do
...
done <thefile
该文件已提供给我,因此在它登陆我的系统之前我无能为力(Linux - OpenSuSE 10.2)。我确实dos2unix
在文件上运行,但这并不能解决丢失的 EOL。
我见过几个涉及vi
and的解决方案ed
,但它们有点笨拙,我希望有一个更整洁的解决方案,也许使用sed
,我可以在我的 bash 脚本中使用?
奇怪vi
的是,当我归档并执行 a时,我可以在最后一行的末尾:set list
看到一个“ ”。$
我原以为它会丢失,因为我认为“ $
”代表\n
。或者换行符和换行符之间可能有区别?