【发布时间】:2014-12-24 17:47:49
【问题描述】:
我正在寻找 Sublime Text 2 的 Permute Lines -> Unique 的对立面。我需要能够仅显示文件中的重复行(或者,如果可能,在两个不同的文件中)。
我找到了HighlightDuplicates 插件,但我不知道如何选择突出显示的文本以将其复制到新文件中。
【问题讨论】:
标签: duplicates sublimetext2 unique sublimetext
我正在寻找 Sublime Text 2 的 Permute Lines -> Unique 的对立面。我需要能够仅显示文件中的重复行(或者,如果可能,在两个不同的文件中)。
我找到了HighlightDuplicates 插件,但我不知道如何选择突出显示的文本以将其复制到新文件中。
【问题讨论】:
标签: duplicates sublimetext2 unique sublimetext
你有几个问题放在一起,你对每个问题的定义没有完全定义。
鉴于这些问题,让我们从将重复行从一个文件复制到另一个文件的挑战开始。
这个简单的 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 运行代码。
查看输出文件并告诉我们它与您想要的不一样。
一旦我们对单个文件达成一致的输出,为您提供适用于两个文件的版本,就是下一个重大挑战。
【讨论】: