问题由来
昨天在测试的时候,遇到了一个问题,在计算文本文本的行数的时候,直接在linux系统,用的cat file.txt | wc -l 用这个命令统计的,可以结果确比真实的文本少了一行。
问题原因
wc -l 统计行数:使用换行符”\n”作为行结束标志,实际是统计换行符个数
少一行的原因就是因为wc –l是按\n作为行结束符统计行数,所以最后一行如果没有\n的话会统计丢失。windows环境下编译生成的文件文件末尾无\n
实例演示
1.windows环境下编写test1.sh
[root@51 51mn]# cat -A test1.sh
11111111^M$22222222^M$33333333^M$44444444^M$55555555
最后一行如果没有\n,wc统计的结果为4
2.在linux上面直接编写test2.sh
[root@51 51mn]# cat -A test2.sh
111111$222222$333333$444444$555555$
最后一行如果有\n,wc统计的结果为5
来源:CSDN
作者:askcto
链接:https://blog.csdn.net/askcto/article/details/103755864