Navigation

    Community

    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search

    How to delete all lines found in another txt document

    Help wanted · · · – – – · · ·
    2
    2
    369
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • CookieXD
      CookieXD last edited by

      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!

      1 Reply Last reply Reply Quote 0
      • guy038
        guy038 last edited by guy038

        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 of Source.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 is empty

        Best Regards,

        guy038

        1 Reply Last reply Reply Quote 6
        • First post
          Last post
        Copyright © 2014 NodeBB Forums | Contributors