下面有一个文档cut.csv,内容如下:
[lele@Oracle ~]$ cat cut.csv
golonglee, golonglee@163.com youname
golonglee, golonglee@163.com youname
golonglee, golonglee@163.com youname
golonglee, golonglee@163.com youname
golonglee, golonglee@163.com youname
golonglee, golonglee@163.com youname
golonglee, golonglee@163.com youname
golonglee, golonglee@163.com youname
golonglee, golonglee@163.com youname
golonglee, golonglee@163.com youname
golonglee, golonglee@163.com youname
golonglee, golonglee@163.com youname
golonglee, golonglee@163.com youname
现在有一个需求要把这个文档中的所有逗号,替换成冒号:在vi编辑器下使用命令
:n1,n2/word1/word2/g命令失效,也就是
:1,21/,/:/g失效,使用转移字符\,也就是
:1,21/\,/\:/g失效,后来找到一种方法可行,如下
:%s+,+:+可行
命令行打开cut.csv文件,vi cut.csv,并设置打开行号:set nu 内容如下:
1 golonglee, golonglee@163.com youname
2 golonglee, golonglee@163.com youname
3 golonglee, golonglee@163.com youname
4 golonglee, golonglee@163.com youname
5 golonglee, golonglee@163.com youname
6 golonglee, golonglee@163.com youname
7 golonglee, golonglee@163.com youname
8 golonglee, golonglee@163.com youname
9 golonglee, golonglee@163.com youname
10 golonglee, golonglee@163.com youname
11 golonglee, golonglee@163.com youname
12 golonglee, golonglee@163.com youname
13 golonglee, golonglee@163.com youname
14 golonglee, golonglee@163.com youname
15 golonglee, golonglee@163.com youname
16 golonglee, golonglee@163.com youname
17 golonglee, golonglee@163.com youname
18 golonglee, golonglee@163.com youname
19 golonglee, golonglee@163.com youname
20 golonglee, golonglee@163.com youname
21 golonglee, golonglee@163.com youname
输入英文的冒号: 然后输入 nonu即可取消显示行号
之前的经验里面说过使用cut -f3 -d, +文件名,可以截取某一段
截取后的效果
用vi cut.tab打开要编辑的文件cut.tab
输入如下命令:%s+,+:+并回车
在命令模式下,输入
:%s+,+:+并回车,看到cut.csv中的逗号,都已经被冒号:替换,内容如下:
1 golonglee: golonglee@163.com youname
2 golonglee: golonglee@163.com youname
3 golonglee: golonglee@163.com youname
4 golonglee: golonglee@163.com youname
5 golonglee: golonglee@163.com youname
6 golonglee: golonglee@163.com youname
7 golonglee: golonglee@163.com youname
8 golonglee: golonglee@163.com youname
9 golonglee: golonglee@163.com youname
10 golonglee: golonglee@163.com youname
11 golonglee: golonglee@163.com youname
12 golonglee: golonglee@163.com youname
13 golonglee: golonglee@163.com youname
14 golonglee: golonglee@163.com youname
15 golonglee: golonglee@163.com youname
16 golonglee: golonglee@163.com youname
17 golonglee: golonglee@163.com youname
18 golonglee: golonglee@163.com youname
19 golonglee: golonglee@163.com youname
20 golonglee: golonglee@163.com youname
21 golonglee: golonglee@163.com youname
~
~
21 substitutions on 21 lines
举报/反馈