结果是3行,少了一行,原因是文件的最后一行没有换行符。
我在linux下用vim编辑一个新文件,内容和刚刚的a.txt一样,用cat -A查看:
可以看到linux下创建的文本,每一行都是有换行符的,包括最后一行,用wc -l统计行数:
这时统计结果正确。
再用sed替换windows下创建的a.txt, 将其中一行的换行符^M$中的^M去掉,变成linux的换行符$
这里我把文件的第二行的换行符替换成了linux格式的$,注意sed命令中的^M
在命令行中不是直接输入,而是 ctrl+v和ctrl+m. 再用vim打开这个文件:
由于第二行的换行符不是^M$格式,vim不会以dos文件格式来显示文件按,可以发现vim下方没有[dos]的提示了,表明vim以unix文件格式来显示这个文件,因此一些行的后面会多了一个^M标志。