记事本++检查重复行复杂

时间:2013-06-05 13:15:24

标签: notepad++

实施例

40000 +这样的guids行:

GUID: 0981723409871243

在所有GUID中搜索重复项

示例:

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

我有TextFX和比较,但我怎么会发现这部分有2 124432408213和2 08917234071423

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

这将是像GUID:“在guid后搜索文本”下一行然后继续搜索每个GUID ...我可以编写一个可以做到这一点的自定义程序但是......试图避免不得不这样做TextFX非常强大,只是没有办法做这样的事情......

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

[BLOCK1] guid:???? 更多信息: ??? [/ BLOCK1]

这就是每个块的格式化方式..

2 个答案:

答案 0 :(得分:13)

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

答案 1 :(得分:3)

使用TextFx对输入行进行排序并保留重复项。接下来进行正则表达式搜索,在标记标签中设置书签线。搜索文本应为^(GUID:\s*\d+\r\n)\1,然后单击全部标记**。接下来使用Menu => 搜索 => 书签 => 删除未标记的行以删除除重复项之外的所有内容,或使用Menu => 搜索 => 书签 => 复制已添加书签的行并粘贴所需的行。如果有四个或更多相同的行,那么上面的每个对可以用一个条目完成,另一个删除重复的TextFX排序应该删除剩余。

对于[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或类似命令上,sort -c inputFileName | grep -v "^\s*1\s"sort inputFileName | unic -c | grep -v "^\s*1\s"sort inputFileName | uniq -d之类的命令应该可以正常运行,具体取决于可用的命令和选项。