删除后面带有随机文本的重复行

时间:2013-07-09 14:56:48

标签: notepad++

我在Notepad ++中有这样的文字

Random Text Here:188.0.0.0
Random Text Here:188.0.3.0
Random Text Here:188.2.0.0

然而,最后的一些数字是重复的,我想摆脱它们。例如:

Random Text Here:188.0.3.0
Random Different Text Here:188.0.3.0

我将如何在群众中做到这一点,因为有数千条线?

1 个答案:

答案 0 :(得分:1)

在Notepad ++中,我会尝试以下多步骤过程。

(1)使用正则表达式更改所有行,将IP地址和固定文本放在Random Text Here:188.0.0.0:188.0.0.0!!!Random Text Here的前面。

(2)使用TextFx对文件进行排序,删除重复项。

(3)使用正则表达式查找和删除重复项。这可能需要多次通过。

(4)使用正则表达式以正确的顺序放回文本。

(5)(可选)再次对文件进行排序。

上述方法存在问题:

(a)首先为IP地址排序的“随机文本”将是保留的,而不是原始文件中的第一个。

(b)结果将按IP地址或随机文本排序,具体取决于是否使用步骤(5)。

更详细:

(0)选择输入文件中未出现的字符或短字符串。我将使用!!

(1)对文件执行正则表达式替换(使用点 匹配所选的换行符)将^(.*)(:\d+\.\d+\.\d+\.\d+)$更改为$2!!$1

(2)使用TextFx对文件进行排序。指定排序唯一可能有助于减少行数。

(3)对文件执行正则表达式替换(使用点 匹配所选的换行符)将^(:\d+\.\d+\.\d+\.\d+)!!(.*)\r\n\1.*$更改为$1!!$2。当有多条线路具有相同的IP地址时,这将删除其中的大约一半。多次运行相同的更换,直到它报告没有进行任何更改。您可能需要根据文件中的行结尾更改\r\n部分

(4)对文件执行正则表达式替换(使用点 匹配所选的换行符)将^(:\d+\.\d+\.\d+\.\d+)!!(.*)$更改为$2$1

(5)(可选)再次对文件进行排序。