如何从文件中删除重复项。不是简单的线条,而是块。
我有一个像这样的大清单:
define service {
param1 ABC
param2 XYZ
param3 123456
}
define service {
param1 KBW
param2 XYZ
param3 100100
}
define service {
param1 PYJ
param2 XYZ
param3 99842
}
define service {
param1 ABC
param2 XYZ
param3 123456
}
define service {
param1 KBW
param2 XYZ
param3 100100
}
我需要删除重复的条目,在本例中,使用param1 = ABC和param2 = KBW的块。我知道如何删除线条,但是我不知道这样做。
答案 0 :(得分:1)
你可以这样做:
find: (define service \{.*?\})(.*?)\1
replace: $1$2
但你必须按下replaceAll按钮,直到没有更多的匹配。
答案 1 :(得分:0)
使用Notepad++
进行测试。打开文件后,按CTRL+H
打开Replace
对话框。
在Find what:
输入ABC
define service \{\s+param1\s+ABC[^}]+\}
Replace with:
将保持为空,因为我们要删除我们的选择。选择Regular expression
单选按钮和Matches newline
复选框。
然后第一次点击Find Next
。再次点击跳过这个。从那里只需点击Replace
即可替换重复项。 不要点击Replace All
,因为它也会替换第一次出现。现在,对KBW
define service \{\s+param1\s+KBW[^}]+\}