假设我有一个文本文件:
Bar Foo Bar Foo Baz Bar
并且我只想要不会出现超过1次的独特行:
Baz
我使用:sort ui
但它返回:
Bar Baz Foo
如何获得没有重复的行?
答案 0 :(得分:3)
一些awk的时间:
:%!awk '{a[$0]++} END{ for(k in a){ if(a[k] == 1) { print k }} }'
这个想法很简单:将每一行读入哈希表作为键并增加值。这意味着该值将存储一条线被看到的次数。读完文件后,循环遍历哈希表并打印出只能看到一次的每个键。
答案 1 :(得分:2)
您需要首先对这些行进行排序,然后用空字符串替换任意行后跟任意次数的行:
e.g。
:sort i
:%s/^\(.\{-1,\}$\)\n\?\(\1$\n\?\)\+//gi