再用sed替换windows下创建的a.txt, 将其中一行的换行符^M$中的^M去掉,变成linux的换行符$

  这里我把文件的第二行的换行符替换成了linux格式的$,注意sed命令中的^M
  在命令行中不是直接输入,而是 ctrl+v和ctrl+m. 再用vim打开这个文件:

  由于第二行的换行符不是^M$格式,vim不会以dos文件格式来显示文件按,可以发现vim下方没有[dos]的提示了,表明vim以unix文件格式来显示这个文件,因此一些行的后面会多了一个^M标志。

 补充:sed对windows换行符的处理
  通过上面可以知道vim对于一个全部使用windows格式换行符的文本文件会以[dos]模式来显示这个文本,自动忽略行尾的^M.
  博主在使用sed命令处理一些文件时,会出现一个本来显示正常的文件,被sed处理之后,再打开文件时发现再次出现讨厌的^M. 那么sed是如何处理windows换行符的文本呢?
  先在windows下创建一个文本文件,传至我的linux中。用cat -A 显示特殊字符: