我有两个文件(A和B),我想从A中减去B的行。
也就是说,给定以下文件:
FileA:
line1
line2
line3
line4
和FileB:
line2
line4
结果将是:
line1
line3
文件中的行是分开的,它们彼此不一致。
我该如何使用记事本++?
答案 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
现在只需删除第二个文件的内容。
重要提示:
为此,您需要一个无法在两个文件中的任何一个上找到的“唯一”分隔符。我为此目的使用了@@@@@@@@@@@@@@@@@@@@
,但如果您认为可以在其他地方找到它,则应更改解决方案以使用其他分隔符(用于合并文件和使用正则表达式)