7

例子

40000 多行带有这样的指南:

GUID: 0981723409871243

在所有 GUID 中搜索重复项

例子:

GUID: 124432408213
GUID: 08917234071423
GUID: 0189742381
GUID: 08917234071423
GUID: 0817423423
GUID: 124432408213

我有 TextFX 和 Compare 但我怎么会发现这部分有 2124432408213和 208917234071423

在可能重复的 40,000 行中,我无法轻松检测到它们我需要一种查找重复项的方法。

它将类似于 GUID:“在 guid 之后搜索文本”下一行,然后继续搜索每个 GUID...我可以编写一个可以执行此操作的自定义程序,但是...尽量避免这样做 TextFX 很漂亮强大只是没有办法做这样的事情......

我应该在这里添加更多信息示例:

[block1] 指导: ???? 更多信息: ???[/块1]

这就是每个块的格式..

4

2 回答 2

13

虽然我的回答现在对您没有帮助...将您的行复制到 2 个新闻选项卡中,然后使用 TextFX 复制排序选项卡 1 和唯一排序选项卡 2。然后将选项卡 2 移动到其他视图,最后使用比较。

于 2014-02-03T05:22:23.350 回答
3

使用 TextFx 对输入行进行排序并保留重复项。接下来进行正则表达式搜索,在标记选项卡中设置书签行。搜索文本应然后单击全部标记**。接下来使用 Menu => Search => Bookmark => Remove unmarked lines删除除重复项之外的所有内容,或使用 Menu => Search => Bookmark => Copy Bookmarked Lines并将行粘贴到需要的位置。如果有四个或更多相同的行,那么上面可能会以每对的一个条目结束,另一个 TextFX 排序删除重复项应该删除多余的。^(GUID:\s*\d+\r\n)\1

对于这种[block1] guid: ???? more info: ??? [/block1]情况,正则表达式更复杂,但会在以下位置^(\[block1\] guid:\s*\d+ more info:\s*\d+ \[/block1\]\r\n)\1找到并标记重复项:

[block1] guid: 1234 more info: 5678 [/block1]
[block1] guid: 1235 more info: 5678 [/block1]
[block1] guid: 1235 more info: 5678 [/block1]
[block1] guid: 1236 more info: 5678 [/block1]
[block1] guid: 1236 more info: 5678 [/block1]

在 Linux或类似系统上,诸如 or 之类的命令sort -c inputFileName | grep -v "^\s*1\s"应该根据可用的命令和选项而起作用。sort inputFileName | unic -c | grep -v "^\s*1\s"sort inputFileName | uniq -d

于 2013-06-05T14:33:56.893 回答