0

如何从文件中删除重复项。不是简单的线条,而是块。

我有一个像这样的大清单:

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 的块。我知道如何删除线条,但我不知道如何使用块。

4

2 回答 2

1

你可以这样做:

find: (define service \{.*?\})(.*?)\1
replace: $1$2

但是您必须按下 replaceAll 按钮,直到没有更多匹配项为止。

于 2013-05-28T22:22:52.793 回答
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[^}]+\}
于 2013-05-28T22:38:13.180 回答