免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3465 | 回复: 4
打印 上一主题 下一主题

[Linux] VIM删除重复行 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-09-19 16:54 |只看该作者 |倒序浏览
首先是:sort进行排序,然后就开始使用正则删除,看的很头大,没看懂什么意思,烦请高手帮忙解释一下,谢谢。
  1. g/^\(.\+\)$\n\1/d
  2. g/\%(^\1$\n\)\@<=\(.*\)$/d
  3. g/\%(^\1\>.*$\n\)\@<=\(\k\+\).*$/d
复制代码

论坛徽章:
125
处女座
日期:2014-06-14 02:20:38双子座
日期:2014-06-14 03:59:12处女座
日期:2014-06-14 04:14:31狮子座
日期:2014-06-14 05:24:38巳蛇
日期:2014-06-14 05:48:58巨蟹座
日期:2014-06-14 05:50:18摩羯座
日期:2014-06-14 06:23:58双鱼座
日期:2014-06-14 06:49:15亥猪
日期:2014-06-14 07:04:56巨蟹座
日期:2014-06-14 07:12:32双子座
日期:2014-06-14 07:26:53射手座
日期:2014-06-14 07:58:51
2 [报告]
发表于 2012-09-20 14:43 |只看该作者
这个正则只要一段时间不用就忘光光

论坛徽章:
125
处女座
日期:2014-06-14 02:20:38双子座
日期:2014-06-14 03:59:12处女座
日期:2014-06-14 04:14:31狮子座
日期:2014-06-14 05:24:38巳蛇
日期:2014-06-14 05:48:58巨蟹座
日期:2014-06-14 05:50:18摩羯座
日期:2014-06-14 06:23:58双鱼座
日期:2014-06-14 06:49:15亥猪
日期:2014-06-14 07:04:56巨蟹座
日期:2014-06-14 07:12:32双子座
日期:2014-06-14 07:26:53射手座
日期:2014-06-14 07:58:51
3 [报告]
发表于 2012-09-20 14:44 |只看该作者
等高手吧                    

论坛徽章:
0
4 [报告]
发表于 2012-09-28 11:20 |只看该作者
第一个搞懂了,后面两个没搞懂,谁来解释一下,谢谢啊。

论坛徽章:
0
5 [报告]
发表于 2012-10-16 10:29 |只看该作者
本帖最后由 sacry 于 2012-10-16 10:34 编辑

回复 1# gm100861

第一个 g/^\(.\+\)$\n\1/d
对于
  1. abc
  2. abc
  3. abc
复制代码
^\(.\+\)$匹配任意行,比如第一个 abc
\n匹配转行
\1匹配和第一个\( \)内一样的,也就是abc

这个正则当:g匹配出 abc\nabc的时候,被删掉的当前行是前半部分
所以最终会留下重复行的最后一行。

这里其实写错了,少了个$
g/^\(.\+\)$\n\1$/d

第二个g/\%(^\1$\n\)\@<=\(.*\)$/d
\@<=后面的\(.*\)$匹配任意行,
\1匹配\@<=后面的所匹配的
这个正则当:g匹配出 abc\nabc的时候,被删掉的当前行是后半部分
所以最终会留下重复行的第一行。

这个和第一个相比,没搞懂的话估计是因为不懂\@<=吧,
看Manual去...

第三个g/\%(^\1\>.*$\n\)\@<=\(\k\+\).*$/d
重复的部分不是全行,而是kerword部分(:h 'iskeyword'),遇到空格,-什么的就终止,

所以和第二个相比,不删除重复行,而是第一个"单词"相同就删除。
比如下面的内容执行后会留下abc 123
  1. abc 123
  2. abc 456
  3. abc 789
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP