感谢支持
我们一直在努力

Linux下Vi替换字符命令操作实例

Linux下的开发中,经常涉及到对文件中的字符进行处理,其中,对字符的替换操作也是非常的频繁。

本文以一个实际的文件为例,详细介绍了Linux下常用的vi替换字符命令,为相关的开发工作提供给了参考。

 

Vim学习指南 http://www.linuxidc.com/Linux/2013-08/89096.htm

快速学会 Vi编辑器 http://www.linuxidc.com/Linux/2013-08/88586.htm

强大的Vim 编辑器 http://www.linuxidc.com/Linux/2013-07/87544.htm

在CentOS 6.2上搭建Vim开发环境 http://www.linuxidc.com/Linux/2013-07/87363.htm

Vim 7.4a 发布,全新更快的正则表达式引擎 http://www.linuxidc.com/Linux/2013-07/87035.htm

CentOS 5.4 安装高亮Vim编辑工具 http://www.linuxidc.com/Linux/2013-06/86508.htm

Vim技巧分享:C语言设置 http://www.linuxidc.com/Linux/2012-12/77124.htm

本文中被操作的文件为TestFile.txt,其中的内容如下:

www.linuxidc.com@linux:~/linuxidc/Test> cat TestFile.txt

12345678907890

ABCDABCDEFGHIJ

12345^&*()()

98765432103210

abcdabcdefghij123123

 

先进入vi编辑模式,如下:

www.linuxidc.com@linux:~/linuxidc/Test> vi TestFile.txt

 

依次执行以下替换命令(注意:每条命令都要以冒号“:”开头),其中替换部分用红色字体标注。

1) :n,$s/str1/str2/

将第n行开始到最后一行中每一行的第一个str1替换为str2

例如,在TestFile.txt文件的vi编辑模式下执行:

:2,$s/123/321/

文件内容变为:

12345678907890

ABCDABCDEFGHIJ

32145^&*()()

98765432103210

abcdabcdefghij321123

可见,只有第三行和第五行的第一个“123”变成了“321”。第一行的“123”没有被替换,因为命令是从第二行开始执行的。

 

2) :n,$s/str1/str2/g

将第n行开始到最后一行中每一行所有str1替换为str2

紧接着上一条命令执行:

:2,$s/3210/1234/g

文件内容变为:

12345678907890

ABCDABCDEFGHIJ

32145^&*()()

98765412341234

abcdabcdefghij321123

可见,从第二行开始的所有的“3210”都变成了“1234”。

 

3) :%s/str1/str2/

将每一行的第一个str1替换为str2

紧接着上一条命令执行:

:%s/123/321/

文件内容变为:

32145678907890

ABCDABCDEFGHIJ

32145^&*()()

98765432141234

abcdabcdefghij321321

可见,每一行的第一个“123”都变成了“321”。

 

4) :%s/str1/str2/g

将每一行中所有str1替换为 str2

紧接着上一条命令执行:

:%s/890/098/g

文件内容变为:

32145670987098

ABCDABCDEFGHIJ

32145^&*()()

98765432141234

abcdabcdefghij321321

可见,每一行的所有“890”都变成了“098”。

更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2014-07/104649p2.htm

5) :s/str1/str2/

将行中首次出现的字符串str1用字符串str2替换。

紧接着上一条命令执行:

:s/098/890/

文件内容变为:

32145678907098

ABCDABCDEFGHIJ

32145^&*()()

98765432141234

abcdabcdefghij321321

可见,只有第一行的第一个“098”变成了“890”。

 

6) :s/str1/str2/g

将行中所有出现的字符串str1用字符串str2替换。

紧接着上一条命令执行:

:s/321/123/g

文件内容变为:

12345678907098

ABCDABCDEFGHIJ

32145^&*()()

98765432141234

abcdabcdefghij321321

可见,第一行的所有“321”变成了“123”。

 

7) :.,$ s/str1/str2/g

将正文当前行到末尾所有出现的字符串str1用字符串str2替换。

紧接着上一条命令执行:

:.,$ s/1/2/g

文件内容变为:

22345678907098

ABCDABCDEFGHIJ

32245^&*()()

98765432242234

abcdabcdefghij322322

可见,所有的“1”都变成了“2”。

 

8) :1,$ s/str1/str2/g

将正文中所有出现的字符串str1用字符串str2替换。

紧接着上一条命令执行:

:1,$ s/22/33/g

文件内容变为:

33345678907098

ABCDABCDEFGHIJ

33345^&*()()

98765433343334

abcdabcdefghij333333

可见,所有的“22”都变成了“33”。

 

9) :g/str1/s//str2/g

将正文中所有出现的字符串str1用字符串str2替换。

紧接着上一条命令执行:

:g/33/s//22/g

文件内容变为:

22345678907098

ABCDABCDEFGHIJ

22345^&*()()

98765422342234

abcdabcdefghij222222

可见,所有的“33”都变成了“22”。

 

从以上替换命令的执行可以看出:

1) 所有命令都要以冒号“:”开头。

2) 所有命令既可以替换单个的字符,也可以替换字符串。

3) 如果“g”放在命令末尾,表示对搜索字符串的每次出现进行替换;如果不加“g”,表示只对搜索字符串的首次出现进行替换;而如果“g”放在了命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。

 Linuxvi替换字符命令有很多种,作为一名合格的软件开发工程师,一定要熟练掌握常见字符替换命令的用法。

本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-07/104649.htm

赞(0) 打赏
转载请注明出处:服务器评测 » Linux下Vi替换字符命令操作实例
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏