登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

baikgd的博客

技术是工具,生活是目的,更好的生活是目标!

 
 
 

日志

 
 

VI批量替换文本,多行删除,复制,移动  

2009-11-13 16:32:05|  分类: linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

:n1,n2 m n3    移动n1-n2行(包括n1,n2)到n3行之下;

:n1,n2 co n3    复制n1-n2行(包括n1,n2)到n3行之下;

:n1,n2 d           删除n1-n2行(包括n1,n2)行;

vi替换使用规则:
:g/s1/s/s2/s3/g
第一个g表示对每一个包括s1的行都进行替换,第二个g表示对每一行包括s1的行所有的s2都用s3替换
s表示替换,s2是要被替换的字符串,他可以和s1相同(如果相同的话用//代替),s3是替换字符串
在vi界面下使用命令 :%s#/usr/bin#/bin#g 可以把文件中所有路径/usr/bin换成/bin。其中“#”是转义字符,表明其后的“/”字符是具有实际意义的字符,不是分隔符。


s/str1/str2/ 用字符串 str2 替换行中首次出现的字符串 str1
:s/str1/str2/g 用字符串 str2 替换行中所有出现的字符串 str1
:s/str1/str2/gi 用字符串 str2 替换行中所有出现的字符串 str1,在查找时不区分大小写


: .,$ s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1
:1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串 str1
:g/str1/s//str2/g 功能同上
:%s/str1/str2/g 功能同上
:g/foobar/s/bar/baz/g 首先搜寻foobar,然后把它变成foobaz. 它没有改变 jailbars, 而其他的一些命令可能会改变jailbars.
:%s/str1/str2/gc 替换全文所有符合的单词并让用户确认
:g/str1/s//str2/gi 用字符串 str2 替换正文中所有出现的字符串 str1,在查找时不区分大小写,此命令没有下面的严格,经测试显示,不能完全做到在查找时忽略大小写
:%s/str1/str2/gi 用字符串 str2 替换正文中所有出现的字符串 str1,在查找时不区分大小写,在查找时可以完全做到忽略大小写
:10,20s/^/ / 将第10行至第20行资料的最前面插入5个空白
:%s/$/str/g 在整个文件每一行的行尾添加“str”
:3,7s/str1/str2/g仅替换文件中的第3行到第7行中的“str1”成“str2”
:%s/:.*//g 删除/etc/passwd中用户名后面的从冒号开始直到行尾的所有部分(前提是已经打开了/etc/passwd文件)从上述替换命令可以看到:g 放在命令末尾,表示对搜索字符串在光标所在行的每次出现进行替换;不加 g,表示只对搜索字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。上面的命令中的/只是起分隔作用,也可以用其他的字符代替。另外,可以在正规式里用\(和\)来剥离一个序列。例如:

有些字符域使用得很频繁. Vim 为这些字符域提供了预定义域:
项 匹配 相当于
\d 数字 [0-9]
\D 非数字 [^0-9]
\x 十六进制数字 [0-9a-fA-F]
\X 非十六进制数字 [^0-9a-fA-F]
\s 空白字符 [ ] ( 和 )
\S 非空白字符 [^ ] (非 和 )
\l 小写字母 [a-z]
\L 非小写字母 [^a-z]
\u 大写字母 [A-Z]
\U 非大写字母 [^A-Z]
& 所有查找时匹配到的东西
\[Ee] 更改大小写的选择区域的终点

:%s/\s\+$// 删除行尾多余的空格
命令前面指明范围是“%”,所以这会作用于整个文件。“substitute”命令的样式是“\s\+$”。这表示行末($)一个或者多个(\+)空格(\s)。:g/\(foo\)\(bar\)/s/\2/\1baz/g 将foobar替换成foobaz

  评论这张
 
阅读(3088)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018