bash while read line因换行符丢失导致最后一行被忽略
15 January 2015
文本文件raw.txt里面包含4行代码,如下:
.center{ display: table-cell; vertical-align: middle; text-align: center; }
用cat raw.txt | while read line; echo $line; done
逐行处理,发现最后一行没有进入循环体内:
stackoverflow上搜索,找到的原因是“最后一行因为缺少换行符”导致read line出错,while条件不成立,所以没有进入循环体内。解决方法是 while read line || [ -n "$line" ]
如下:
当然,给被处理文件最后一行添加换行符也是可以解决问题的,最简单的方法就是用文本编辑工具,如vim重新打开并保存就行。
参考
blog comments powered by Disqus