在使用 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 |