Community
    • Login

    Delete Individual Lines in Multiple Files based on a List

    Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
    3 Posts 2 Posters 1.8k Views
    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.
    • Darren WhiteD
      Darren White
      last edited by

      Hi All,
      I have a text file with 400+ lines of unique text, similar to this:

      doc:EMPLOYEEFILE.5C5D259F084B11DC93FF00163505A2EF
      doc:EMPLOYEEFILE.5C0C2040084B11DC93FF00163505A2EF
      doc:EMPLOYEEFILE.5BBD63D1084B11DC93FF00163505A2EF
      doc:EMPLOYEEFILE.5B5BBBA2084B11DC93FF00163505A2EF
      doc:EMPLOYEEFILE.3715DD892E6411DDA81300163505A2EF

      Each of these lines (records) matches another line in one of 5 additional open files across the tabs, but I cannot confirm in which file each line resides, therefore I can search a unique line and find it in all open files and then double click on the record found and go to that file to delete it, however this is a laborious task when done 400+ times and I know Notepad++ would be able to delete these records automatically, I just don’t know how.

      Whay I would like is a way of searching each of the 400+ records in the one file and deleting each line in any of the other 5 files, leaving 5 adjusted files and the original ‘search’ file.

      In the meantime I will continue to delete the records manually, but I know you guys are amazing at coming up with something I can use.

      Scott SumnerS 1 Reply Last reply Reply Quote 1
      • Scott SumnerS
        Scott Sumner @Darren White
        last edited by

        @Darren-White

        I would try * a technique like the one shown here. You can use Replace All in All Opened Documents to do a single-button action, but unfortunately I think you are going to have to copy your lookup data table to the bottom of each file temporarily (5 files, not a huge deal…), something like this:

        -------------------------------------------------
        doc:EMPLOYEEFILE.5C5D259F084B11DC93FF00163505A2EF
        doc:EMPLOYEEFILE.5C0C2040084B11DC93FF00163505A2EF
        doc:EMPLOYEEFILE.5BBD63D1084B11DC93FF00163505A2EF
        doc:EMPLOYEEFILE.5B5BBBA2084B11DC93FF00163505A2EF
        doc:EMPLOYEEFILE.3715DD892E6411DDA81300163505A2EF
        

        Note also that I have put a “delimiter” line of dashes in the file, right above the lookup-table. Hopefully this type of line does not occur elsewhere in your data.

        After doing this, if you execute the following, it may work:

        Find what zone: (?-i)^(doc:EMPLOYEEFILE\.[A-Z0-9]+)\R(?=(?s).*?^-{10,}\R.*?^\1$)
        Replace with zone: make sure this is empty
        Search mode: Regular expression
        Action: Replace All in All Opened Documents button

        It works by seeking a line with correct formatting above the line of dashes, and attempting to find the same line below the line of dashes. If it is able to find it, the empty replacement will effectively remove the original line.

        *I say try above because if we are talking “really big data” here, the this approach may fail without some further analysis and tweaking.

        1 Reply Last reply Reply Quote 3
        • Darren WhiteD
          Darren White
          last edited by

          Scott, Thank you. I knew there would be a way and I almost knew it would be something in a regular expression, but only gods like yourself would know what to do. I really like the idea of a delimeter and then using the search to match any above and below the line.

          I did not get the chance to try this (although I can’t see why it wouldn’t work) as I thought of an alternative, which was to use Excel and a formula. I managed to open each of my 5 files in one workbook with seperate tabs and use a formula to look at a control tab to find any matches. I think it’s pretty much the same thing as your suggestion, just using vba and not regex.

          I thank you for your efforts

          1 Reply Last reply Reply Quote 2
          • First post
            Last post
          The Community of users of the Notepad++ text editor.
          Powered by NodeBB | Contributors