Sublime重复删除(数组)

时间:2014-08-16 09:01:21

标签: database sublimetext2 duplication

进入一个我无法解决的问题。 假设我有一个包含数千个条目的文本文件,例如:

12.04.2013 krispy
11.2.2013 krispy
11.2.2013 peter
11.2.2013 william
23.4.2014 krispy

如何选择和置换唯一,以便只选择1个krispy日期(无关紧要),以便输出为:

12.04.2013 krispy
11.2.2013 peter
11.2.2013 william

意思是我在"之后选择了第二个值。 "空格字符并将其置换以删除整行。

任何帮助都会很棒,谢谢!

1 个答案:

答案 0 :(得分:0)

这(通常)不是编辑的工作,你应该用编程语言来做,但既然你同意检查其他解决方案,那就让我们去吧。

的bash

只需使用排序方法:

sort -k2 -u filename -o filename

这将根据第二列(-k2)对行进行排序,并仅返回该列唯一的行(-u)。您阅读文件filename并输出文件filename(以覆盖它)。

如果您使用的是非unix系统,则可以使用git-bashcygwin来使用unix命令。

否则你可以使用无所不在的python来实现这一目标。实际上,sublime文本是用python编写的,所以在插件中将这段代码变为崇高是微不足道的。

removedups.py

from fileinput import input
import sys

seen = set()
filename = sys.argv[1]

for line in input(filename, inplace=True):
    date, name = line.split()
    if name not in seen:
        seen.add(name)
        print line,

然后你可以像这样使用它:

python removedups.py filename