在使用 sed 在文档结尾添加数据时发现总是不成功,思来想去觉得可能是文档有某些隐藏字符,变查询怎么查看文档的隐藏字符。




使用 cat 可以很方便的查看隐藏字符

1
$ cat -t

查看结尾符

1
$ cat -e

发现文档结尾 ^M 字符,可见该文件是在 Windows 创建的,各个系统的换行符为

  • windows系统行尾符是CR LF——对应的正则表达式是\r\n
  • mac系统是CR——对应的正则表达式是\r
  • unix系统是LF——对应的正则表达式是\n

Windows 文件在 unix 系统中打开,换行符就会变成 ^M,我们首先需要去掉该字符

1
$ sed 's/^M//g' test.txt

注意 ^M 不是手打的,而是 <ctrl>v + <ctrl>m 生成的

随后再次插入行尾数据即可成功

1
$ sed 's/$/--/g' test.txt
03-17 00:33