VIM 编辑器实用技巧
发布于 2023-12-30
删除重复行
# 先对文本行进行排序 :sort # 删除重复行 :g/^\(.*\)$\n\1$/d # 或者 :g/\v^(.*)$\n\1$/d # 或者 :g/\v^(.*)(\n\1)+$/d
\v
: 打开very magic
模式,这意味着正则表达式中的特殊字符不需要额外转义。^
: 行的开头。(.*)
: 匹配任意字符零次或多次,并将其保存到捕获组中。$
: 行的结尾。\n
: 换行符。\1
: 引用捕获组中的内容。/d
: 删除匹配的行。
这个正则表达式的目的是匹配两行中内容相同的情况。
发现一个更牛批的, :sort u
可以直接排序并自动删除重复行。
借助外部工具也可以, :% !uniq
同样可以删除重复行。