我正在 VIM 中寻找一种方法来删除所有重复的行,并且只留下文件中存在的唯一行。我更喜欢宏,但命令或函数会很棒。
假设我有一个包含重复行和一些独特之处的文件:
1Apple
1Apple
2Peach
2Peach
2Peach
3Beer
4Banana
4Banana
4Banana
Run Code Online (Sandbox Code Playgroud)
我想删除所有行,以便剩下的所有内容:
3Beer
Run Code Online (Sandbox Code Playgroud)
我非常想要的一条独特的线。
我一直使用 sort u 通过删除重复项来获取唯一列表,但有时我只需要文件中的唯一行。
任何想法如何在 VIM 中处理这种情况?
您可以使用替换命令和反向引用来执行此操作:
s/^\(.*\)\(\n\1\)\+//
Run Code Online (Sandbox Code Playgroud)
请注意,这仅适用于对行进行排序的情况。这是通过在下一行匹配和删除第一组一次或多次来实现的。
您可以使用“uniq”命令来执行此操作 -
uniq -u 要检查的文件名.txt
| 归档时间: |
|
| 查看次数: |
4644 次 |
| 最近记录: |