进入一个我无法解决的问题。 假设我有一个包含数千个条目的文本文件,例如:
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
意思是我在"之后选择了第二个值。 "空格字符并将其置换以删除整行。
任何帮助都会很棒,谢谢!
答案 0 :(得分:0)
这(通常)不是编辑的工作,你应该用编程语言来做,但既然你同意检查其他解决方案,那就让我们去吧。
只需使用排序方法:
sort -k2 -u filename -o filename
这将根据第二列(-k2
)对行进行排序,并仅返回该列唯一的行(-u
)。您阅读文件filename
并输出文件filename
(以覆盖它)。
如果您使用的是非unix系统,则可以使用git-bash
或cygwin
来使用unix命令。
否则你可以使用无所不在的python来实现这一目标。实际上,sublime文本是用python编写的,所以在插件中将这段代码变为崇高是微不足道的。
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