Community
    • Login

    Search and mark between date and time

    Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
    12 Posts 4 Posters 8.6k 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.
    • Sven RyglertS
      Sven Ryglert
      last edited by

      Excuse for my not so good English and couldn’t update it so I post it one more time with, hopefully more clearly content.

      I have an massive 2 150 998 line long log file.
      Need to search and mark between (for an example) 2016-01-01 06:00:00 and 2016-01-01 23:59:59, so I can copy it to Spreadsheet

      Find many solutions of search and replace, but I just need to find the data and copy it.

      Scott SumnerS 1 Reply Last reply Reply Quote 0
      • Scott SumnerS
        Scott Sumner @Sven Ryglert
        last edited by

        @Sven-Ryglert

        You didn’t clarify anything between post #1 and post #2. :)

        I think more detail is needed…what has been specified about your data isn’t enough for someone to help well. YOU can see your data so it is clear in your mind, but for anyone wanting to help what you’ve said just leads to more questions when they think about implementing a solution.

        1 Reply Last reply Reply Quote 0
        • Jim DaileyJ
          Jim Dailey
          last edited by

          @Sven-Ryglert I believe you want to find a string (example is 2016-10-01 06:00:00), start marking, find another string (example is 2016-01-01 23:59:59), stop marking so that all text from string1 to string2 is marked so it can be copied to another file.

          I would think that a regex search should be able to do this. Something like:

          ^.*2016-10-01 06:00:00(.*\R)+.*2016-01-01 23:59:59.*\R
          

          should mark the first line containing 2016-10-01 06:00:00 through the line containing 2016-01-01 23:59:59.

          1 Reply Last reply Reply Quote 0
          • Sven RyglertS
            Sven Ryglert
            last edited by Sven Ryglert

            Sorry Scott that I was vague. The English language is a bit tricky for me. I think Jim understood me.

            But just to try to show what I mean. This is how our data looks like in short and the users are marked Xxxxx
            I want to search and mark 2016-10-01 23.59.18 to 2016-10-01 23.59.49 It is tedious to do it manually when the full file contains over 2 millions of lines.

            2016-10-01 23:59:18 PLAY Xxxxx
            2016-10-01 23:59:29 PLAY Xxxxx
            2016-10-01 23:59:39 PLAY Xxxxx
            2016-10-01 23:59:49 PLAY Xxxxx
            2016-10-02 00:00:09 PLAY Xxxxx
            2016-10-02 00:00:29 PLAY Xxxxx
            2016-10-02 00:00:39 PLAY Xxxxx

            I have been searching for this regex plugin and found an dll file that I have installed but can’t see how to bring that regex dialog window up…

            Scott SumnerS 1 Reply Last reply Reply Quote 0
            • Scott SumnerS
              Scott Sumner @Sven Ryglert
              last edited by

              @Sven-Ryglert

              I tried your example data, and inserted some dummy lines in between your “PLAY” lines because I’m guessing that is what your situation really looks like (to account for 2 million lines).

              I had some good luck with this search setup:

              Open the Find dialog; select the Find tab within it
              In the Find What box, put (?s)^(\d{4}-\d{2}-\d{2}).+\1(?-s).+
              Take care not to have any leading/trailing/embedded spaces in that!
              Select Regular Expression as the search mode
              Move the caret to the very top of your file
              Press the Find Next button
              The entire first day’s “PLAY” line matches should get selected and then can be Copy’d to the clipboard
              Press the Find Next button again
              The second day’s “PLAY” matches will get selected…
              This really isn’t much different from Jim’s solution, just a bit more generic.

              This can be extended to make even more refinements, but given the spec that was given… :)

              Not sure what you mean about a regex plugin, but what Jim and I have described requires no plugin.

              1 Reply Last reply Reply Quote 0
              • Sven RyglertS
                Sven Ryglert
                last edited by

                Thanks Scott. The log shows material that is playing between 10 and 15 sec before next material is played and that goes on 24/7 therefore it generates a heavy load of lines…

                I just found out another solution

                I searched for 2016-10-02 from top of the doc and 2016-10-02 00:00:09 was marked
                Then I clicked on Edit and Mark start/end from the Notepad menu
                Made another search for 2016-10-02 but checked Loop and Up and 2016-10-02 00:00:39 was marked
                Edit and Mark start/end again. Hepp! The span was marked up and easy to copy.

                Thanks Jim and Scott. i have been learning a lot from your answers.

                1 Reply Last reply Reply Quote 1
                • Jim DaileyJ
                  Jim Dailey
                  last edited by

                  @Sven-Ryglert Thank you. I didn’t know there was a command on the Edit menu to Start/Stop marking text, even after about 5 years of using N++! :-)

                  1 Reply Last reply Reply Quote 0
                  • Scott SumnerS
                    Scott Sumner
                    last edited by

                    Yes, the Edit -> Begin/End Select is a pretty handy thing when you need to select huge sections of text; sadly it does not have a default shortcut keycombo.

                    It might be little-known that you can also do column-selections with it, for example, invoke Begin/End Select at a starting point, move to a different point by alt+Lclick, then invoke Begin/End Select again and you get a column block between the two points.

                    1 Reply Last reply Reply Quote 2
                    • Jim DaileyJ
                      Jim Dailey
                      last edited by

                      @Scott-Sumner Boom!! The sound of my head exploding! Yet another great new discovery.

                      Scott SumnerS 1 Reply Last reply Reply Quote 0
                      • Scott SumnerS
                        Scott Sumner @Jim Dailey
                        last edited by

                        @Jim-Dailey

                        How about one more? You don’t have to use the mouse for the column-select: At a starting point, invoke Begin/End Select. Move the caret downward to a new point, then Shift+Alt+RightArrow to highlight a single character that you want as the last character in the column block. Invoke Begin/End again. Boom…column block. :)

                        Also works similarly if the starting point is below the ending point…

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

                          Hello, Scott

                          I haven’t noticed the relation between the Begin/End select feature and the column mode selection, yet ! Many thanks for these very nice tricks, indeed !

                          Cheers,

                          guy038

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