🗒️Vim删除重复行
2017-8-23
| 2024-8-13
0  |  0 分钟
type
status
date
slug
summary
tags
category
icon
password
标签
Vim操作文本文件时,经常要查找相同的行或者删除重复行操作,此处记录下操作指令。

排序

先将文本行进行排序
:sort u

查找相同的行

查找相邻两行相同的字符串
:/^\\(.\\+\\)$\\n\\1 or :/^\\(.*\\)$\\n\\1

删除重复行

用替换的方式,先用一行替换相同的两行,再把空白的行删除,此操作比较麻烦
:%s/^\\(.*\\)$\\n\\1/\\1\\r/g :g/^$/d
用删除方式
:g/^\\(.*\\)\\n\\1$/d or :g/\\%(^\\1\\n\\)\\@<=\\(.*\\)$/d or :g/\\v%(^\\1\\n)@<=(.*)$/d
第二种命令解释
:g/\\%(^\\1\\n\\)\\@<=\\(.*\\)$/d :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 the new line between the 2 lines
Vim 删除(包含/不包含)指定字符串的行及统计匹配个数
:g/pattern/d
是找到含有pattern的行, 删之
:v/pattern/d
是找到不含有pattern的行, 删之
使用起来非常方便。
:%s/xxx//gn
统计xxx个数,n表示只报告匹配的个数而不进行实际的替换,详见「:help :v」或「:help :g」
:g/^$/d
删除空格行
:%s/^\s*//g
删除行首空格(注意这是一个替换命令,指将行首的空格替换为无)
:%s/\s*$//g
删除行尾空格(注意这是一个替换命令,指将行尾的空格替换为无)
:%s/ /\r/g
将空格换为回车
:%s/\n/ /g
将回车替换为空格
 
删除每行前10个字符: :%s/^.\{10\}// 删除每行后10个字符 :%s/.\{10\}$//
 
Vim
  • Vim
  • 负载均衡详解之软件篇电商网站架构案例
    目录