How to delete all lines found in another txt document
-
I have one document called “source.txt” and one called “delete.txt”.
I would like to delete every line that is in “delete.txt” from “source.txt”.
That process should be easily repeatable, because I will have to do that many times…Thanks a lot for your help!
-
Hello, @cookiexd and All,
Here is an easy work-around :
-
Open your
source.txt
file, in Notepad++ -
At the end of
source.txt
file, add a new line beginning with, at least, three=
equal symbols -
Then, append the contents of the
delete.txt
file, after the line=====...
-
To end, add an empty line, at the very end of the file ( IMPORTANT )
-
Now, open the
Replace
dialog -
SEARCH
(?s-i)^((?-s).+\R)(?=.*^====+\R.*^\1)|^=+\R.+
-
REPLACE
Leave EMPTY
-
Tick the
Wrap around
option -
Select the
Regular expression
search mode -
Click, once, on the
Replace All
button -
Save the modifications of your
Source.txt
file
Notes :
-
First, the in-line modifiers
(?s-i)
forces, by default, the regex engine :-
To acts in a sensitive case way
(?-i)
-
To consider the regex symbol
.
as standing for any single character, even an EOL one(?s)
-
-
Now, this search regex contains two alternatives, separated with the alternation symbol
|
:-
In the first alternative
^((?-s).+\R)(?=.*^====+\R.*^\1)
:-
The part
((?-s).+\R)
matches any non-null range of standard characters, due to the(?-s)
modifier, followed with its line-break\R
( so, a complete line ! ) and stores it as group1
due the outer parentheses -
But… ONLY IF followed with the same line
\1
, somewhere, further on, after the separator line===== ...
, due to the look-ahead construction(?=.*^====+\R.*^\1)
-
-
In the second alternative
^=+\R.+
, when all initial lines ofSource.txt
file are processed :-
The part
^=+\R
matches the complete separator line===...
, with its like-break -
Then, the part
.+
selects all the subsequent characters, even EOL ones, after this separator line, till the very end of file
-
-
-
Whatever the alternative selected, the matched contents are simply
deleted
as the Replace zone isempty
Best Regards,
guy038
-