vim 删除文本文件中的重复行
2014-04-04 12:56
981 查看
vim之删除重复行
2012-09-20 23:23:49| 分类:Linux/Unix |举报
|字号 订阅
在Vim中删除重复的行很常见,通常有两种情况:
一、重复行紧挨着
– 删除连续相同的行,保留最后一行
:g/^\(.*\)$\n\1$/d
– 删除连续相同的行,保留最开始一行
:g/\%(^\1$\n\)\@<=\(.*\)$/d
上面这两个命令在处理连续相同行时作用相同,但是下面全文搜索重复行删除时区别是保留前面的还是后面的重复行。
– 类似的,删除连续多个空行,只保留一行空行
g/^\s*$\n\s*$/d
二、重复行不挨着
– 删除重复行,结果不要求按原顺序
:sort u
– 删除重复行,结果按照原顺序排列(这个有点麻烦)
1. 为了保存原有顺序,首先给每行加上行号和1个{
:let i=1|g/^/s//\=i.'{'/|let i+=1
2. 按照行号后面的内容排序,参考:help :sort
:sort /^\d\{-}{/
3. 删除行号后面的内容相同的行
保留后面的行:g/^\d\{-}{\(.*\)$\n\d\{-}{\1$/d
或者保留开始的行:g/\%(^\d\{-}{\1$\n\)\@<=\d\{-}{\(.*\)$/d
4. 按照行号恢复顺序
:sort n
5. 删除行首的原来的行号和{
:%s/\d\{-}{//
转自:http://blog.163.com/lgh_2002/blog/static/440175262012820112349967/
相关文章推荐
- php删除文本文件中重复行的方法
- 使用Editplus删除文本文件中的重复行
- vim或sed删除文本文件中所有的中文字符
- linux文本排序、交集、差集,查找并删除重复文件脚本、comm命令
- php删除文本文件中重复行的方法
- vim删除文本文件中末行^M
- 删除文件中重复的行
- 如何从一个文件中删除另一个文件的重复项
- 用C++程序删除文本文件中以“//”开头的行
- 删除文本中内容重复的行的批处理
- 将两个文件记录合并,每条记录占用一行,要求删除重复行,合并行并对其排序。
- fdupes:Linux 中查找并删除重复文件的命令行工具
- 删除一个目录下的重复文件(与文件名无关)
- fdupes 删除指定目录下重复文件
- 使用VIM将文件的其中的连续几行注释删除或者给其中的连续几行添加注释
- shell命令find删除修改后带尾巴的重复的文件
- 通过md5值删除重复文件
- 160802、1.06s删除10w条重复记录只保留一条(mysql)及linux删除乱码文件
- vim删除文本的命令
- 如何从一个文件中删除另一个文件的重复项