如何使用nodepad ++从两个文件中减去行?

时间:2019-03-29 09:01:15

标签: notepad++

我有两个文件(A和B),我想从A中减去B的行。

也就是说,给定以下文件:

FileA:

line1
line2
line3
line4

和FileB:

line2
line4

结果将是:

line1
line3

文件中的行是分开的,它们彼此不一致。

我该如何使用记事本++?

1 个答案:

答案 0 :(得分:1)

您可以通过手动合并两个文件,然后应用一些正则表达式来做到这一点。

想象一下带有以下几行的文件“ A”:

abc
def
ghi
jkl
mno
pqr
stu
vwx

以及要减去的文件“ B”,其内容如下:

abc
mno
vwx

将它们合并到一个文件中,并用至少20个@分隔内容,如下所示:

abc
def
ghi
jkl
mno
pqr
stu
vwx

@@@@@@@@@@@@@@@@@@@@

abc
mno
vwx

现在应用此正则表达式:

搜索:^([^\n\r]+)\R(?=[\s\S]+^@{20,}$[\s\S]*^\1$)

替换为(nothing)

搜索方法:regular expression

全部替换

结果将是:

def
ghi
jkl
pqr
stu

@@@@@@@@@@@@@@@@@@@@

abc
mno
vwx

现在只需删除第二个文件的内容。

重要提示:

为此,您需要一个无法在两个文件中的任何一个上找到的“唯一”分隔符。我为此目的使用了@@@@@@@@@@@@@@@@@@@@,但如果您认为可以在其他地方找到它,则应更改解决方案以使用其他分隔符(用于合并文件和使用正则表达式)