• Login
Community
  • Login

Is it possible to switch column lines?

Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
12 Posts 6 Posters 1.7k 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.
  • X
    X
    last edited by Oct 31, 2019, 8:40 PM

    Hello, my issue is:

    line1
    line2
    line3
    line4
    line5

    I need to make it:

    line5
    line4
    line3
    line2
    line1

    So, I have large column A to Z, with goal to make it Z to A

    I hope someone can help me with this.

    Thank you very much.

    D 1 Reply Last reply Oct 31, 2019, 9:00 PM Reply Quote 0
    • D
      dinkumoil @X
      last edited by Oct 31, 2019, 9:00 PM

      @X

      Seems like the Lua script I’ve written some days ago respectively the changed version of @dkeenan7 could be useful for you, have a look at this thread.

      To use this solutin you need to install the LuaScript plugin, available via Plugins Admin.

      X 1 Reply Last reply Oct 31, 2019, 9:26 PM Reply Quote 2
      • X
        X @dinkumoil
        last edited by Oct 31, 2019, 9:26 PM

        @dinkumoil Hey,

        Thank you very much for reaching out.

        I followed your steps and successfully installed*/edited your script.

        Sorry, I’m a complete newbie here, so I still don’t know how can I swap my lines.

        Everything looks regular as it was before, could you please extra guide me here how to swap my lines?

        Thanks once again.

        D 1 Reply Last reply Oct 31, 2019, 9:35 PM Reply Quote 1
        • D
          dinkumoil @X
          last edited by Oct 31, 2019, 9:35 PM

          @X

          Please read >>> this <<< comment of @dkeenan7 in the thread already mentioned. There he provided a step-by-step guide on how to install and use the script.

          X 1 Reply Last reply Oct 31, 2019, 10:28 PM Reply Quote 1
          • T
            Terry R
            last edited by Oct 31, 2019, 9:38 PM

            @X said in Is it possible to switch column lines?:

            So, I have large column A to Z, with goal to make it Z to A

            You could add line numbers (with leading zeros) to the start of each line, then order descending and then remove the line numbers just keeping the original line. So this does take a few steps.

            1. Have your cursor in the very first position in the file (line 1 column 1 before any characters)
            2. Under “Edit” menu, select “column editor”
            3. Select “text to insert” and type a single space (or other such character if line started with a space, perhaps &), click OK
            4. Again select first line, first position and this time select “number to insert”
            5. Initial number is 1, increase by also 1 and tick “leading zeros”, click OK.
            6. Select “Edit” menu again, and then “Line Operations”, then select “sort lines as integers descending”

            At this point the lines have completed to “Z to A” switch. All that remains is to remove the characters and numbers we added initially. This requires a regex.

            So uding “Search” menu , select “Replace”.
            Find What:^\d+\s (if you used & instead of space then type ^\d+&
            Replace with:empty field here

            Click on “replace all” and the line numbers and “space” character are removed.

            Terry

            X 1 Reply Last reply Oct 31, 2019, 10:53 PM Reply Quote 2
            • X
              X @dinkumoil
              last edited by Oct 31, 2019, 10:28 PM

              @dinkumoil said in Is it possible to switch column lines?:

              @X

              Please read >>> this <<< comment of @dkeenan7 in the thread already mentioned. There he provided a step-by-step guide on how to install and use the script.

              Hey buddy, my apologize for not seeing the upper part (above the script code) where it clearly says how to use it. However, this is not what I was looking for. At least, I still can’t figure out how to do my task at once. I can only rotate lines 1 by 1, can’t swap em to be Z to A.

              If am wrong with this statement, please correct me if you don’t mind.

              Check out Terry’s answer, just for the record. (like useful info)

              D 1 Reply Last reply Oct 31, 2019, 10:47 PM Reply Quote 2
              • D
                dinkumoil @X
                last edited by dinkumoil Oct 31, 2019, 10:48 PM Oct 31, 2019, 10:47 PM

                @X said:

                I can only rotate lines 1 by 1, can’t swap em to be Z to A.

                Yes, thats true. I’m sorry if that doesn’t fit your needs.

                1 Reply Last reply Reply Quote 1
                • X
                  X @Terry R
                  last edited by Oct 31, 2019, 10:53 PM

                  @Terry-R Beautiful solution buddy. I really appreciate it.

                  Thank you very much!

                  @dinkumoil no problem mate, thanks for assisting me, I equally appreciate your help as well.

                  1 Reply Last reply Reply Quote 1
                  • G
                    guy038
                    last edited by guy038 Nov 1, 2019, 5:55 PM Nov 1, 2019, 11:12 AM

                    Hi, @x, @dinkumoil, @terry-r and All,

                    As @x, in its initial post, spoke about column A to Z, I first thought that he wanted to reverse all columns of a table in the opposite order !

                    If you need this kind of feature, no need for plugin or script ! Just regexes… as always ;-))


                    Let’s say you have a table, with 12 columns and the ! character as a delimiter, as below . Now, you would like to reverse, totally, the colum order !

                    •--------------------------------------------------------------------------------------------•
                    ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                    ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                    ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                    ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                    ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                    ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                    ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                    ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                    ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                    ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                    •--------------------------------------------------------------------------------------------•
                    

                    If so,

                    • Choose any dummy character, not presently used in your file : I chose the # character

                    • Paste, preferably, your table contents in a new tab

                    • Open the Replace dialog ( Ctrl + H )

                    • SEARCH (?-s)^(?=.*!$)!(.+)!|#(.+)!(.+#)|(#)

                    • REPLACE (?1#\1#)(?2!\3\2#)?4!

                    • Tick the Wrap around option

                    • Select the Regular expression search mode

                    • If N is the number of columns, click, exactly, N + 1 times on the Replace All button ( or use the Alt + A shotcut )

                    In this example, N is 12, so you need to click 13 times on the Replace All button !

                    And you’ll get the expected text :

                    •--------------------------------------------------------------------------------------------•
                    ! z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC ! bcdefgh ! a ! 567890 ! 789 ! 123456 ! 34 ! 12 !
                    ! z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC ! bcdefgh ! a ! 567890 ! 789 ! 123456 ! 34 ! 12 !
                    ! z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC ! bcdefgh ! a ! 567890 ! 789 ! 123456 ! 34 ! 12 !
                    ! z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC ! bcdefgh ! a ! 567890 ! 789 ! 123456 ! 34 ! 12 !
                    ! z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC ! bcdefgh ! a ! 567890 ! 789 ! 123456 ! 34 ! 12 !
                    ! z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC ! bcdefgh ! a ! 567890 ! 789 ! 123456 ! 34 ! 12 !
                    ! z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC ! bcdefgh ! a ! 567890 ! 789 ! 123456 ! 34 ! 12 !
                    ! z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC ! bcdefgh ! a ! 567890 ! 789 ! 123456 ! 34 ! 12 !
                    ! z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC ! bcdefgh ! a ! 567890 ! 789 ! 123456 ! 34 ! 12 !
                    ! z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC ! bcdefgh ! a ! 567890 ! 789 ! 123456 ! 34 ! 12 !
                    •--------------------------------------------------------------------------------------------•
                    

                    Notes :

                    • The regex contain 3 alternatives which do 3 different search/replacement :

                      • First, it replaces the ! delimiters, at beginning and end, of each row of the table, with the dummy # character. This corresponds, both, in search and replacement, to the parts :

                        • SEARCH ^(?=.*!$)!(.+)! ( group 1 )

                        • REPLACE (?1#\1#)

                      • Secondly, it swaps the N - 1 first columns with the last N column. This corresponds, both, in search and replacement, to the parts, below, which are executed N - 1 times, repeatedly :

                        • SEARCH #(.+)!(.+#) ( groups 2 and 3 )

                        • REPLACE (?2!\3\2#)

                      • Finally, it reverts any dummy # character to the initial ! character. This corresponds, both, in search and replacement, to the parts :

                        • SEARCH ^(#) ( group 4 )

                        • REPLACE ?4!


                    Remark : You may repeat the process, again, for the N + 1 following S/R actions. The nice thing is that, it provides, in our case, 25 different column configurations ;-)), as described below :

                    INITIAL table, with 3 ROWS of 12 COLUMNS ( = N )
                    
                    •--------------------------------------------------------------------------------------------•
                    ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                    ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                    ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                    •--------------------------------------------------------------------------------------------•
                    
                    
                    After 5 consecutive 'REPLACE ALL' actions :
                    
                      - Columns, located BEFORE the FIRST #, are sorted in REVERSE order
                    
                      - Columns, located AFTER  the FIRST #, are sorted in NORMAL  order
                    
                    •--------------------------------------------------------------------------------------------•
                    ! z ! vwxy ! hijklmnopqqrstu ! abcdefg # 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC #
                    ! z ! vwxy ! hijklmnopqqrstu ! abcdefg # 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC #
                    ! z ! vwxy ! hijklmnopqqrstu ! abcdefg # 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC #
                    •--------------------------------------------------------------------------------------------•
                    
                     
                    After 13 consecutive 'REPLACE ALL' actions  ( N + 1 )
                    
                      - ALL columns are sorted in REVERSE order
                      
                    •--------------------------------------------------------------------------------------------•
                    ! z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC ! bcdefgh ! a ! 567890 ! 789 ! 123456 ! 34 ! 12 !
                    ! z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC ! bcdefgh ! a ! 567890 ! 789 ! 123456 ! 34 ! 12 !
                    ! z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC ! bcdefgh ! a ! 567890 ! 789 ! 123456 ! 34 ! 12 !
                    •--------------------------------------------------------------------------------------------•
                    
                    
                    After 21 consecutive 'REPLACE ALL' actions
                    
                      - Columns, located BEFORE the FIRST #, are sorted in NORMAL  order
                    
                      - Columns, located AFTER  the FIRST #, are sorted in REVERSE order
                    
                    •--------------------------------------------------------------------------------------------•
                    ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh # z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC #
                    ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh # z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC #
                    ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh # z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC #
                    •--------------------------------------------------------------------------------------------•
                    
                    
                    After 26 consecutive 'REPLACE ALL' actions ( 2 x ( N + 1 ) )
                    
                      - INITIAL table, again
                    
                    •--------------------------------------------------------------------------------------------•
                    ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                    ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                    ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                    •--------------------------------------------------------------------------------------------•
                    

                    However, for any configuration reached, with a number of clicks on the Replace All button, different from K x ( N + 1 ), you’ll need to perform, this elementary S/R, in the end :

                    SEARCH #

                    REPLACE !

                    Best Regards

                    guy038

                    1 Reply Last reply Reply Quote 2
                    • dkeenan7D
                      dkeenan7
                      last edited by Nov 1, 2019, 3:47 PM

                      Although it’s too late to solve @X’s problem, I have added Reverse Selections/Characters Ctrl+Alt+Shift+T to @dinkumoil’s and my Transpose script. If you Alt-select a column, this command will reverse its rows. See
                      https://community.notepad-plus-plus.org/topic/18415/transpose-multiple-selections/15

                      D 1 Reply Last reply Nov 1, 2019, 6:50 PM Reply Quote 2
                      • Alan KilbornA
                        Alan Kilborn
                        last edited by Alan Kilborn Nov 1, 2019, 5:17 PM Nov 1, 2019, 5:17 PM

                        If we are opening it up to scripting, here’s a Pythonscript reference for reversing lines: https://sourceforge.net/p/npppythonscript/discussion/1199074/thread/e61f36ec/

                        1 Reply Last reply Reply Quote 1
                        • D
                          dinkumoil @dkeenan7
                          last edited by Nov 1, 2019, 6:50 PM

                          @dkeenan7 said in Is it possible to switch column lines?:

                          I have added Reverse Selections/Characters Ctrl+Alt+Shift+T to @dinkumoil’s and my Transpose script.

                          I have to intervene, this script is far from being even partially my script! The honor is due to @dkeenan7. Thank you again!

                          1 Reply Last reply Reply Quote 3
                          4 out of 12
                          • First post
                            4/12
                            Last post
                          The Community of users of the Notepad++ text editor.
                          Powered by NodeBB | Contributors