vi中换行符的替换问题

最近在公司用shell处理一些数据,发现vi的也能做一些简单的脚本的工作,常见的就是替换了。

很多时候需要对换行符进行处理,无论是把某个符号换成换行符也好,还是把换行符换成其他符号。

这里面就有个方向的问题了,而vi中两个方向的换行符是不一样的。


如果把a换成换行符:

%s/a/^M/g
其中^M这个需要先Ctrl+v 再按回车得到。

而如果把换行符都换成a,则不是这个符号:

%s/\n/a/g

常见的反义符号。

也就是说最后如果想换行,用的是先Ctrl+v 再按回车得到的特殊符号。

那这个符号这怎么来的呢?通过查阅资料:

Windows files has line feed and carriage return. When such files are copied to *nix like OS, vim / vi shows ^M characters at the end of each line. 

也就是说这是windows文件到linux环境下填上的,所以只要去掉就可以了,去掉也用的是类似上面的代码。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页