我正在寻找与Sublime Text 2 Permute Lines -> Unique
相反的东西。我需要能够只显示文件中的重复行(或者,如果可能,在两个不同的文件中)。
我找到了HighlightDuplicates
插件,但我不知道如何选择突出显示的文本将其复制到新文件中。
答案 0 :(得分:2)
您有几个问题全部放在一起,您对每个问题的定义都没有完全定义。
鉴于这些问题,让我们从将一个文件中的重复行添加到另一个文件的挑战开始。
这个简单的Python应该适合你。
""" Write duplicate lines in one file to a text file. """
fileToRead = 'read_file.txt'
fileToWrite = 'write_file.txt'
dupLineSet = set()
with open(fileToRead, mode='r') as read_file:
file_lines = read_file.readlines()
file_lines_copy = file_lines
for line in file_lines:
matches = 0
for line_copy in reversed(file_lines_copy):
if line == line_copy:
file_lines_copy.remove(line_copy)
matches += 1
if matches > 1:
if line.strip() != '':
dupLineSet.add(line)
with open(fileToWrite, mode='w') as write_file:
for line in dupLineSet:
write_file.write(line)
##############################
注意:
您必须将read_file.txt
替换为您要查找重复项的文件的名称。
如果您愿意,可以将write_file.txt
替换为您希望写入重复项的文件名。
试一试,看看你是否喜欢这些结果。 既然你没有定义什么是“重复”意味着我做了一些你可能不喜欢的假设。
无论如何将上述内容放入ST,编辑您需要的位并使用Tools -> Build
来运行代码。
查看输出文件并告诉我们它与您想要的不一样。
一旦我们为单个文件提供了一个商定的输出,就可以获得适用于两个文件的版本,这是下一个重大挑战。