VIM删除重复行

[转贴] VIM删除重复行

下面收录了2篇相关文章

1) 转贴自:http://kangzye.blog.163.com/blog/static/36819223201061705729933/

vim 查找相同的两行,以及删除重复行

要查找相同的两行,先将内容排序,然后查找前一行等于后一行者

:sort

/^\(.\+\)$\n\1

如此就找到了,博大精深的VIM   – . –

删除重复行(先排一下序):

:sort
:g/^\(.\+\)$\n\1/d

2) 转贴自:http://kangzye.blog.163.com/blog/static/36819223201061705729933/

关于Vim的删除文本中的重复行。

最近开始使用Vim,感觉此乃外人间之神器,怪不得那么多Vimer对其偏爱有加。现在说说文本中重读行删除问题。在众多的编辑器中Vim对正则的支持估计是最强大的了,很多高级的正则表达式在Vim中都是支持的。以下是我的解法:

:%s/\(.*\)\n\1/\1\r/g
:g/^$/d

这里需要两个命令,后再http://vim.wikia.com/wiki/Uniq_-_Removing_duplicate_lines找到了我的加强版:

:g/^\(.*\)$\n\1$/d
:g/\%(^\1$\n\)\@<=\(.*\)$/d

两者都是前面的命令和我的相似,它删除的是重复项的前面一项;后面的命令删除的重复项的后面的内容。注意两个命令独立的,可以分别使用。对于g命令不是很熟悉,它是一个全局命令,以后会有全面介绍。

第二个命令的解释:

g//d <– Delete the lines matching the regexp
\@<= <– If the bit following matches, make sure the bit preceding this symbol directly precedes the match
\(.*\)$ <– Match the line into subst register 1
\%( ) <— Group without placing in a subst register.
^\1$\n <— Match subst register 1 followed by end of line and the new line between the 2 lines

时间: 2024-10-21 19:53:13

VIM删除重复行的相关文章

SQL Server删除重复行的6个方法

SQL Server删除重复行是我们最常见的操作之一,下面就为您介绍六种适合不同情况的SQL Server删除重复行的方法,供您参考. 1.如果有ID字段,就是具有唯一性的字段 delect   table  tableName  where   id   not   in   (   select   max(id)   from   table   group   by   col1,col2,col3...   )    group   by   子句后跟的字段就是你用来判断重复的条件,如

sql 删除重复行

1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count (peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 delete from people where peopleId in (selec

Oracle删除重复行

Oracle删除重复行 分类: ORACLE2010-12-12 17:10 423人阅读 评论(0) 收藏 举报 oracletabledeleteintegerinsert.net 查询及删除重复记录的SQL语句1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select   peopleId from   people group by   peopleId having count(

删除重复行SQL举例

删除重复行SQL实验简单举例 说明:实验按顺序进行,前后存在关联性,阅读时请注意,打开目录更便于查看. 构造实验环境: SQL> select count(*) from emp; COUNT(*) ---------- 14 SQL> alter table EMP drop constraint PK_EMP CASCADE; --删除主键约束 SQL> insert into EMP select * from EMP; --向EMP表中插入重复行 SQL> commit;

文本删除重复行(UltraEdit)

问题:给定文本如下,文本行包含重复行,给文本排序并删除重复行 操作方法:[编辑]-->[排序]-->[高级排序/选项]如下: 如下图为排序删除重复后结果图: 原文地址:https://www.cnblogs.com/wleyang/p/8696000.html

如何用UE(UltraEdit)删除重复行?--转

原文地址:https://www.zhengjie.com/question/bb148773 使用UE(UltraEdit)的高级排序功能就可以删除掉所有的重复行. 操作步骤 1.文件—排序(R)—高级排序/选项(A). 2.在弹出的“高级排序/选项”对话框中勾选“删除重复项”—根据自己的需要选择升序或降序—点击“排序”按钮. 3.高级排序后的结果,已经将重复的数据全部删除.

SqlServer_删除重复行只保留一条记录

前提:相同的数据重复往数据库写入,导致存在仅主键Id不同的重复数据,现在需要去除重复数据,仅保留重复数据中Id最大的一条 思路: 1.找出存在重复数据的记录,并取重复数据中最大的Id值 2.删除记录中不包含最大Id值的记录 实现: DELETE FROM [Log_IIS].[dbo].[IISLog_table] WHERE id not in (select MAX(Id) from [IISLog_table] group by [RequestTime] ,[LogFilename] ,

T-SQL Recipes之删除重复行

一.准备基础数据 (1)创建辅助表,方便以后倾向于Set-base方式解决问题 -- Creating and Populating the Nums Auxiliary Table SET NOCOUNT ON; IF OBJECT_ID('dbo.Nums', 'U') IS NOT NULL DROP TABLE dbo.Nums; CREATE TABLE dbo.Nums(n INT NOT NULL PRIMARY KEY); DECLARE @max AS INT , @rc AS

删除重复行

#!/usr/bin/env python # -*- coding: utf-8 -*- # Author: f0rsaken import sys def main(): try: filename = sys.argv[1] except IndexError as e: print(e) sys.exit(2) try: with open(filename, "r") as f: temp_list = f.readlines() except IOError as e: p