vi正则表达式
搜索命令:/正则表达式
替换命令::s/正则表达式/替换字符串/选项
:%s/str1/str2/g 该命令中:表示进入命令行模式,%表示对该文件所有行有效,s表示查找并替换,正则表达式str1表示被替换的内容,字符串str2表示替换后的内容,g表示整行有效
正则表达式字符匹配




实例替换


实例删除

3.删除所有空行
:g/^$/d (删除没有任何字符除了一个回车符的行)
:g/^[ \t]*$/d (删除有空格或是tab符号的所有行)
4.删除含有某些字符的行
:g/ERROR/d (删除含有ERROR字符的所有行,d是删除指令)
5.删除每行的所有前导空格
:%s/^ *//g (后面的//之间没有任何东西,也就是说不用任何东西去替换前面的前导空格,即删除前导空格)
6.在文件中的每一行的开始插入 -> (或者换其他字符)
:%s/^/->/g
7.在每一行的尾部加上一个句号(或者其他字符)
:%s/$/。/g
8.删除以数字开头的行
:%s/^\d.*$//g
9.删除以abc三个字母一起开头的行
:%s/^[a|b|c].*$//g或者:%s/^abc.*$//g
10.删除重复行
:%s/^\(.*\)\n\1$/\1/g 将两行重复行压缩成一行(/^匹配到行首,.*匹配任意多个字符,\(.*\)相当于把之前匹配得到的字符保存下来,\1就表示保存的内容,\n\1表示换行之后再去匹配之前保存的字符,到这里就匹配了两行,$接着到换行之后的行尾,之后的\1表示用前面保存的匹配到的第一行字符去替换匹配得到的两行字符,这就相当于把两行重复行压缩成一行)
:%s/^\(.*\)\(\n\1)\+$/\1/g 将多行重复行压缩成一行 (\n\1)\+表示匹配任意多重复行

实例对调
1.交换列表中所有连字符分隔的条目的顺序
如将ABC:XYZ对换成XYZ:ABC
:%s/\(.*\):\(.*\)/\2:\1/g \1表示第一次保存的内容,\2表示第二次保存的内容
函数式
格式:
:s/str1/\=函数式
例1:将各行的id字符串替换为行号
:%s/\<id\>/\=line(".") \<id\>匹配的是单独的词id,而不是amid这类嵌在某个单词里面的字符。line(".")是返回各行行号的一个函数。
例2:将每行开头的单词替换为(行号-10)
:%s/^\<\w\+\>/\=(line(".")-10)
与Perl正则表达式的区别

Sed用法(用来直接处理文件)

vi正则表达式的更多相关文章
- vim正则表达式~转
vim正则表达式(转) Vim中的正则表达式功能很强大,如果能自由运用,则可以完成很多难以想象的操作. 如果你比较熟悉Perl的正规表达式,可以直接参照与Perl正则表达式的区别一节. 一.使用正则表 ...
- vim正则表达式(转)
Vim中的正则表达式功能很强大,如果能自由运用,则可以完成很多难以想象的操作. 如果你比较熟悉Perl的正规表达式,可以直接参照与Perl正则表达式的区别一节. 一.使用正则表达式的命令 使用正则表达 ...
- VIM正则表达式。
看了那个30分钟正则表达式入门.但是是在VIM使用过程中偶尔会出现达不得想要效果的情况.后面百度了下,确然,VIM的正则还是有点区别的. 转自:http://www.cppblog.com/kefen ...
- VIM中的正则表达式及替换命令
VIM中的正则表达式及替换命令 一.使用正则表达式的命令 使用正则表达式的命令最常见的就是 / (搜索)命令.其格式如下: /正则表达式 另一个很有用的命令就是 :s(替换)命令,将第一个//之间的正 ...
- VIM 用正则表达式
VIM 用正则表达式 批量替换文本,多行删除,复制,移动 在VIM中 用正则表达式 批量替换文本,多行删除,复制,移动 :n1,n2 m n3 移动n1-n2行(包括n1,n2)到n3行之下: ...
- Linux vi/vim命令高效助记图
图片来源网上,如有侵权,请告知,我会删除掉,谢谢~ 常用编辑按键: 1 vi +[num] file 打开文件,并将光标置于第n行首 2 vi + file 打开文件,并将光标置于最后一行首 3 vi ...
- VIM 用正则表达式,非贪婪匹配,匹配竖杠,竖线, 匹配中文,中文正则,倒数第二列, 匹配任意一个字符 :
VIM 用正则表达式 批量替换文本,多行删除,复制,移动 在VIM中 用正则表达式 批量替换文本,多行删除,复制,移动 :n1,n2 m n3 移动n1-n2行(包括n1,n2)到n3行之下: ...
- Vim特定行行尾追加
python print 替换 logging 1.print语句最后追加")". :%s/\(.*\)print \(.*\)/\1print \2)/g 2." ...
- vim 正则替换
http://www.cppblog.com/kefeng/archive/2010/10/20/130574.html Vim中的正则表达式功能很强大,如果能自由运用,则可以完成很多难以想象的操作. ...
随机推荐
- 合宙Luat直播间即将开启,你揭开行业奥秘,让你快人一步。
嗨~刚陪你们过儿童节 和你们一起成长的合宙Luat 又有新计划 -- 合宙Luat官方直播即将开启 - 敬请关注 - - 官方直播什么内容 - 可能是合宙研发动态 可能是新品发布资讯 可能是行业大咖分 ...
- csp-s模拟测试57(10.2)「天空龙」·「巨神兵」·「太阳神」
题目是古埃及神话??? A. 天空龙 傻逼模拟,看来没有滑天下之大稽QAQ,也没有打错快读(大雾...) B. 巨神兵 难度爆增,一脸懵比..... 60分状压: 因为是求有向图,关于有向图好像拓扑用 ...
- Android开发问题之Installation failed due to invalid URI!
真机调试遇到以下问题: [2017-07-20 13:43:53 - VCL02PANEL] Installation failed due to invalid URI![2017-07-20 13 ...
- Go语言中slice作为参数传递时遇到的一些“坑”
前言 相信看到这个题目,可能大家都觉得是一个老生常谈的月经topic了.一直以来其实把握一个"值传递"基本上就能理解各种情况了,不过最近遇到了更深一点的"小坑" ...
- python读取csv文件绘制气温图,x轴为日期,并填充颜色
- Spring Boot 无侵入式 实现RESTful API接口统一JSON格式返回
前言 现在我们做项目基本上中大型项目都是选择前后端分离,前后端分离已经成了一个趋势了,所以总这样·我们就要和前端约定统一的api 接口返回json 格式, 这样我们需要封装一个统一通用全局 模版api ...
- 8、负载均衡HAproxy部署
8.1.基本环境说明: 服务器名(centos7) ip地址 安装软件 slave-node1 172.16.1.91 haproxy1.8.15,tomcat8.5.37(8080.8081实例), ...
- js 正则表达式 验证数字或字母
let reg= /^(^[0-9]*$)|(^[A-Za-z]+$)/ /*reg= /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]$/*/ if(!reg.test( ...
- 资源:zookeeper下载地址
提供zookeeper下载地址:https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/
- mqtt 集成
-- 在pom.xml导入依赖 <!-- mqtt --> <dependency> <groupId>org.springframework.boot</g ...