最近在公司用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环境下填上的,所以只要去掉就可以了,去掉也用的是类似上面的代码。