从制表符分隔的文本文件中查找重复的行

时间:2014-03-08 07:56:20

标签: excel text

需要帮助从文本文件中删除重复行,该文件具有以下格式的数据

示例标签已删除文本文件 - streetss.txt

row0 street zipcode city state country
row1 5th-Ave 1111 Chicago Illinois USA
row2 3rd-street 1111 Chicago Illinois USA
row4 3rd-street 1111 Chicago Illinois USA
row5 10th-Ave 2222 Carlsbad California USA
row6 10th-Ave 2222 Carlsbad California USA 

有快速的方式

1)获取包含重复行的输出到新文件中(示例中的第3行和第6行)

duplicates.txt的所需输出

row0 3rd-street 1111 Chicago Illinois USA
row6 10th-Ave 2222 Carlsbad California USA 

2)删除重复的行(将第3行和第6行删除的原始文件的版本为新文件)

duplicates_removed.txt的所需输出

row0 street zipcode city state country
row1 5th-Ave 1111 Chicago Illinois USA
row2 3rd-street 1111 Chicago Illinois USA
row3 10th-Ave 2222 Carlsbad California USA

3 个答案:

答案 0 :(得分:1)

好吧,如果你在Excel中,一种方法是简单地创建一个包含所有其他列中所有项目的附加列。按该列排序,您可以轻松识别相同的行并手动处理它们。

假设您的6列在A-F中,在G1中

  =A1 & B1 & C1 & D1 & E1 & F1

将其复制到列表中。然后按G1排序,然后按A1排序。这将把第一个相同的行作为列表中的第一行(即,row2将在row4之前)

然后在H2中输入以下公式:

  =if(G2=G1,"duplicate","")

将其复制到列表中。现在复制列G和H并使用选择性粘贴/值。按H排序,然后按A.这将为您提供开头组中每个重复组的所有第一个条目(包括完全唯一的值),然后在结尾处对所有第二个和后续重复项进行排序。将第二组剪切并粘贴到另一张纸上。将每个工作表另存为单独的制表符分隔文件。

将此过程转换为VBA代码应该是不言而喻的。

答案 1 :(得分:0)

  1. 对所有行进行排序。
  2. 遍历这些行并删除与您检查的最后一行相等的每一行。
  3. 这可以在许多脚本语言中完成,包括Python。要在Excel中执行此操作 - 您必须在排序后将每行与其上一行不同的行复制到另一张表。

答案 2 :(得分:0)

如果你在excel中打开它,并且每行的所有数据都在1个单元格中,那么有一个过滤器可以删除重复项。

选择包含所有数据的col A,然后转到Filter> advanced> “只有独特的记录”。然后你可以将意大利面col A复制到新的表格中。