我有一个文本文件,其中包含一长串条目(每行一个).其中一些是重复的,我想知道是否有可能(如果是这样,如何)删除任何重复.如果可能的话,我有兴趣在vi/vim中执行此操作.
我有一个包含以下行的文件:
one one
one one
two two two
one one
three three
one one
three three
four
Run Code Online (Sandbox Code Playgroud)
我想从文件中删除所有出现的重复行,只保留非重复行。因此,在上面的示例中,结果应该是:
two two two
four
Run Code Online (Sandbox Code Playgroud)
我看到了这个类似问题的答案。我尝试修改前一行,如下所示:
:syn clear Repeat | g/^\(.*\)\n\ze\%(.*\n\)*\1$/exe 'syn match Repeat "^' . escape(getline ('.'), '".\^$*[]') . '$"' | d
Run Code Online (Sandbox Code Playgroud)
但它不会删除所有出现的重复行,它仅删除一些出现的重复行。
我怎样才能在 vim 中做到这一点?或者具体来说我怎样才能在 vim 中使用 ex 做到这一点?
澄清一下,我不是在寻找sort u.