Community
    • Login

    File sorting

    Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
    20 Posts 8 Posters 4.9k 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.
    • guy038G
      guy038
      last edited by guy038

      Hello, @dave-pruce, @alan-kilborn and All,

      @dave-pruce :

      Still, as gently as possible, I can whisper to you : There a possible work-around, which only uses native N++ features ;-))

      As it’s about 1.40 a.m, presently, in France, I hope to be able to post my solution, tomorrow. So just be patient, a while !

      Best Regards,

      guy038

      Alan KilbornA 1 Reply Last reply Reply Quote 1
      • Alan KilbornA
        Alan Kilborn @guy038
        last edited by

        @guy038

        I’ll have to see the number of steps involved to see if it invalidates my original “no”. :)

        CoisesC 1 Reply Last reply Reply Quote 0
        • Alan KilbornA
          Alan Kilborn
          last edited by

          While we’re waiting for @guy038, while not native to Notepad++, a Pythonscript one-liner can do the job:

          editor.setText(['\r\n','\r','\n'][editor.getEOLMode()].join(sorted(editor.getText().splitlines(),key=len)))
          

          And since it is a one-liner, one doesn’t even have to create a file for it. Just open a Pythonscript Console window (Plugins > Pythonscript > Show Console) and then find the little box that has >>> to its left in the console window and paste the above there. Press Enter to execute it for the active Notepad++ file.

          Sadly, the bigger hurdle would be getting Pythonscript installed. :-(

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

            Hi, @dave-pruce, @alan-kilborn and All,

            The work-around comes from a simple idea. Imagine these 5 lines, below !

            wxyz
            defghijklm
            no
            abcd
            pqrstuv
            

            To begin with, right justify these 5 lines. So you get :

                  wxyz
            defghijklm
                    no
                  abcd
               pqrstuv
            

            Now, run a simple ascending alphabetic sort

                    no
                  abcd
                  wxyz
               pqrstuv
            defghijklm
            

            Nice ! We have, automatically, all the lines sorted by line length.

            To end, you just have to get rid of the leading spaces, giving the expected text :

            no
            abcd
            wxyz
            pqrstuv
            defghijklm
            

            In addition, notice that lines of same length are, also, sorted alphabetically, too ;-))


            OK ! Let’s use a real list. From, the link, below :

            https://en.wikipedia.org/wiki/List_of_rivers_by_length

            I got, for instance, after some re-formating, an English world list of 243 rivers, below, pasted in a new N++ tab :

            Nile
            White Nile
            Kagera
            Nyabarongo
            Mwogo
            Rukarara
            Amazon
            Ucayali
            Tambo
            Ene
            Mantaro
            Yangtze
            Mississippi
            Missouri
            Jefferson
            Beaverhead
            Red Rock
            Hell Roaring
            Yenisei
            Angara
            Selenge
            Ider
            Yellow River
            Ob
            Irtysh
            Río de la Plata
            Paraná
            Congo
            Chambeshi
            Amur
            Argun
            Kherlen
            Lena
            Mekong
            Mackenzie
            Slave
            Peace
            Finlay
            Niger
            Brahmaputra
            Tsangpo
            Murray
            Darling
            Culgoa
            Balonne
            Condamine
            Tocantins
            Araguaia
            Volga
            Indus
            Sênggê Zangbo
            Shatt al-Arab
            Euphrates
            Murat
            Madeira
            Mamoré
            Caine
            Rocha
            Purús
            Yukon
            São Francisco
            Syr Darya
            Naryn
            Salween
            Saint Lawrence
            Niagara
            Detroit
            Saint Clair
            Saint Marys
            Saint Louis
            North
            Nizhnyaya Tunguska
            Danube
            Breg
            Zambezi
            Vilyuy
            Araguaia
            Ganges
            Hooghly
            Padma
            Amu Darya
            Panj
            Japurá
            Nelson
            Saskatchewan
            Paraguay
            Kolyma
            Pilcomayo
            Biya
            Katun
            Ishim
            Juruá
            Ural
            Arkansas
            Colorado
            Olenyok
            Dnieper
            Aldan
            Ubangi
            Uele
            Negro
            Columbia
            Zhujiang
            Red
            Ayeyarwady
            Kasai
            Ohio
            Allegheny
            Orinoco
            Tarim
            Xingu
            Orange
            Salado
            Vitim
            Tigris
            Songhua
            Tapajós
            Don
            Podkamennaya Tunguska
            Pechora
            Kama
            Limpopo
            Chulym
            Guaporé
            Indigirka
            Snake
            Senegal
            Uruguay
            Blue Nile
            Churchill
            Khatanga
            Okavango
            Volta
            Beni
            Platte
            Tobol
            Alazeya
            Jubba
            Shebelle
            Içá
            Magdalena
            Han
            Kura
            Oka
            Murray
            Guaviare
            Pecos
            Murrumbidgee
            Yenisei
            Godavari
            Colorado
            Río Grande
            Belaya
            Cooper
            Barcoo
            Marañón
            Dniester
            Benue
            Ili
            Warburton
            Georgina
            Sutlej
            Yamuna
            Vyatka
            Fraser
            Brazos
            Liao
            Lachlan
            Yalong
            Iguaçu
            Olyokma
            Northern Dvina
            Sukhona
            Krishna
            Iriri
            Narmada
            Lomami
            Ottawa
            Lerma
            Grande de Santiago
            Elbe
            Vltava
            Zeya
            Juruena
            Rhine
            Athabasca
            Canadian
            North Saskatchewan
            Vistula
            Bug
            Vaal
            Shire
            Ogooué
            Nen
            Kızılırmak
            Markha
            Green
            Milk
            Chindwin
            Sankuru
            Wu
            Red
            James
            Kapuas
            Desna
            Helmand
            Madre de Dios
            Tietê
            Vychegda
            Sepik
            Cimarron
            Anadyr
            Paraíba do Sul
            Jialing
            Liard
            Cumberland
            White
            Huallaga
            Kwango
            Draa
            Gambia
            Tyung
            Chenab
            Yellowstone
            Ghaghara
            Huai
            Aras
            Chu
            Seversky Donets
            Bermejo
            Fly
            Kuskokwim
            Tennessee
            Oder
            Warta
            Aruwimi
            Daugava
            Gila
            Loire
            Essequibo
            Khoper
            Tagus
            Flinders
            

            Ironically, we’re going to classify them, according to the length of their name and not according to their length ;-))


            First, we’ll, roughly, estimate the maximum length of the listed names, with the generic regex (?-s)^.{N,}

            • Open the Replace window ( Ctrl + H )

            • Select the Regular expression search mode

              • (?-s)^.{30,} and a click on the Count button => 0 matches

              • (?-s)^.{25,} and a click on the Count button => 0 matches

              • (?-s)^.{20,} and a click on the Count button => 1 match

            => The maximum length is between 20 and 25. So, we’ll rely on the upper boundary 25 in the subsequent regexes :


            For all the subsequent regex S/R :

            • Tick the Wrap around option

            • Click on the Replace All button, exclusively, to process each S/R

            We’ll begin to add 25 space chars, at end of each line of the list :

            SEARCH (?-s)^.+

            REPLACE $0 ( and type in 25 space characters, right after $0, in the Replace zone

            Note : In case, you would need, for an other list, additional space chars, at end of lines, just re-run this S/R to get 50, 75, 100, spaces and so on !


            Then, use the following regex S/R, in order to truncate any standard character, located after the 25 column :

            SEARCH (?-s)^.{25}\K.+

            REPLACE Leave EMPTY


            Now, we’re going to right justify all these names, with the regex S/R :

            SEARCH (?-s)^(.+?)(\x20{2,})$

            REPLACE \2\1

            You should get the following text ( I simply put the beginning and end of the list, in order to limit my post length ! ) :

                                 Nile
                           White Nile
                               Kagera
                           Nyabarongo
                                Mwogo
                             Rukarara
                               Amazon
                              Ucayali
                                Tambo
                                  Ene
            .........................
            .........................
            .........................
                                 Oder
                                Warta
                              Aruwimi
                              Daugava
                                 Gila
                                Loire
                            Essequibo
                               Khoper
                                Tagus
                             Flinders
            

            Now, we perform the usual alphabetic sort ( Edit > Line Operations > Sort Lines Lexicographically Ascending ) and we get :

                                   Ob
                                   Wu
                                  Bug
                                  Chu
                                  Don
                                  Ene
                                  Fly
                                  Han
                                  Ili
                                  Içá
                                  Nen
                                  Oka
                                  Red
                                  Red
                                 Amur
                                 Aras
                                 Beni
            .........................
            .........................
            .........................
                         Hell Roaring
                         Murrumbidgee
                         Saskatchewan
                         Yellow River
                        Madre de Dios
                        Shatt al-Arab
                        São Francisco
                        Sênggê Zangbo
                       Northern Dvina
                       Paraíba do Sul
                       Saint Lawrence
                      Río de la Plata
                      Seversky Donets
                   Grande de Santiago
                   Nizhnyaya Tunguska
                   North Saskatchewan
                Podkamennaya Tunguska
            

            To end, we get rid of all the leading spaces, with :

            SEARCH ^\x20+

            REPLACE Leave EMPTY

            and we get our expected list :

            Ob
            Wu
            Bug
            Chu
            Don
            Ene
            Fly
            Han
            Ili
            Içá
            Nen
            Oka
            Red
            Red
            Amur
            Aras
            Beni
            Biya
            Breg
            Draa
            ..............
            ..............
            ..............
            Saint Louis
            Saint Marys
            Yellowstone
            Hell Roaring
            Murrumbidgee
            Saskatchewan
            Yellow River
            Madre de Dios
            Shatt al-Arab
            São Francisco
            Sênggê Zangbo
            Northern Dvina
            Paraíba do Sul
            Saint Lawrence
            Río de la Plata
            Seversky Donets
            Grande de Santiago
            Nizhnyaya Tunguska
            North Saskatchewan
            Podkamennaya Tunguska
            

            Note that this kind of text manipulation should certainly be programmed, in a more elegant way, with a Python or Lua script ;-)) Unfortunately, my skills in that matter are quite poor :-((

            However, I’m sure that some gurus, as @alan-kilborn, @ekopalypse @peterjones or dail, will probably be able to give you a script solution, that, of course, will require you to install the Python or Lua interpreter !

            Hey, guys, it’s not a competition, OK !

            Best Regards,

            guy038

            Alan KilbornA mkupperM 2 Replies Last reply Reply Quote 3
            • Alan KilbornA
              Alan Kilborn @guy038
              last edited by Alan Kilborn

              @guy038 said:

              Hey, guys, it’s not a competition, OK !

              Haha. No, definitely not. A support forum is about giving posters options to solving problems where there is not a very clear answer. It seems we’ve done that so far in this thread! :)

              BTW, that was what I anticipated: A lot of manual steps. :)

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

                Hi, @dave-pruce, @alan-kilborn and All,

                My previous list of rivers contained 5 duplicate names :

                Red, Murray, Yenisei, Araguaia and Colorado

                But this is not important, regarding our problem, anyway !

                As you can see, @@dave-pruce, the Python solution, from Alan, is neater ! Isn’t it ?


                Now, Alan, I’ve just tested your one-line script and, to my mind, there’s two problems :

                • Inside a section of river names, of a same length, the names are not sorted alphabetically !

                • Secondly, some names, containing accentuated characters, as, for instance, the Içá river, are located outside their section, as noticed, below :

                Snake
                Volta
                Tobol
                Jubba
                Içá
                Pecos
                Benue
                Iriri
                Lerma
                

                Cheers,

                guy038

                Alan KilbornA 1 Reply Last reply Reply Quote 0
                • Alan KilbornA
                  Alan Kilborn @guy038
                  last edited by

                  @guy038 said:

                  names are not sorted alphabetically

                  This is outside the scope of the originally stated problem! :)

                  containing accentuated characters…are located outside their section

                  The Python len function is apparently simple-minded in this case (using a simple byte count for the length of these strings containing multibyte characters).

                  Alan KilbornA 1 Reply Last reply Reply Quote 3
                  • Alan KilbornA
                    Alan Kilborn @Alan Kilborn
                    last edited by

                    @Alan-Kilborn said:

                    The Python len function is apparently simple-minded in this case

                    Perhaps this new one-liner is better, for the case where the OP has Unicode data:

                    editor.setText(['\r\n','\r','\n'][editor.getEOLMode()].join(sorted(editor.getText().splitlines(),key=lambda x:len(unicode(x,'utf-8')))))
                    

                    Of course, still big assumption that the OP is using (or is willing to use) Pythonscript! ;)

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

                      @dave-pruce, @alan-kilborn,

                      Yes, your new attempt, Alan, is the solution, when working with UTF8 encoded files, which may content multi-bytes encoded chars !

                      As for me, I was thinking about the opposite solution : to convert UTf8-files to ANSI. However, when using this solution, some characters may result in question marks or may be changed for an approximate character, because, they do not belong to the the corresponding ANSI table of 256 characters !

                      For instance, in my previous list of rivers, the Turkish Kızılırmak river, containing the Latin lowercase pointless letter ı, ( of code-point \x{0131} ), is changed into the approximate name Kizilirmak, after conversion to ANSI !

                      Anyway, we just did our best to solve the OP’s problem ;-))

                      BR

                      guy038

                      1 Reply Last reply Reply Quote 1
                      • F
                        freezer2022 @Dave Pruce
                        last edited by freezer2022

                        @ Dave-Pruce said :

                        Is it possible to sort a file by line length??

                        Yes, not natively, but there is a Notepad++ plugin for it: Linesort v1.1 (but only for 32bit Notepad++) :

                        https://webarchive.org/web/20200207125518/http://www.scout-soft.com/linesort/
                        

                        linesort.png

                        1 Reply Last reply Reply Quote 1
                        • CoisesC
                          Coises @Alan Kilborn
                          last edited by Coises

                          This post is deleted!
                          1 Reply Last reply Reply Quote 0
                          • mkupperM
                            mkupper @guy038
                            last edited by

                            @guy038 You essentially did “programming” with a human computer doing the evaluations and flow control. :-)

                            That reminds me of the stories about the first computers, which was a human job title, for those that computed but also had to do flow control! When ways were figured out in how to do parts of the job, first via mechanical means, and then electronic, the resulting machines came to be known as computers.

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

                              Hello, All,

                              Thanks to, @mkupper, which recently posted a comment and exactly, three years later, I going to simplify the way to get a sort by length of lines and, secondly, by line contents, too !

                              Like in my previous post, I will use this list of rivers, below :

                              https://en.wikipedia.org/wiki/List_of_rivers_by_length

                              After suppression of some doublons, we get an INPUT text of 238 river’s names :

                              Nile
                              White Nile
                              Kagera
                              Nyabarongo
                              Mwogo
                              Rukarara
                              Amazon
                              Ucayali
                              Tambo
                              Ene
                              Mantaro
                              Yangtze
                              Mississippi
                              Missouri
                              Jefferson
                              Beaverhead
                              Red Rock
                              Hell Roaring
                              Yenisei
                              Angara
                              Selenge
                              Ider
                              Yellow River
                              Ob
                              Irtysh
                              Río de la Plata
                              Paraná
                              Congo
                              Chambeshi
                              Amur
                              Argun
                              Kherlen
                              Lena
                              Mekong
                              Mackenzie
                              Slave
                              Peace
                              Finlay
                              Niger
                              Brahmaputra
                              Tsangpo
                              Murray
                              Darling
                              Culgoa
                              Balonne
                              Condamine
                              Tocantins
                              Araguaia
                              Volga
                              Indus
                              Sênggê Zangbo
                              Shatt al-Arab
                              Euphrates
                              Murat
                              Madeira
                              Mamoré
                              Caine
                              Rocha
                              Purús
                              Yukon
                              São Francisco
                              Syr Darya
                              Naryn
                              Salween
                              Saint Lawrence
                              Niagara
                              Detroit
                              Saint Clair
                              Saint Marys
                              Saint Louis
                              North
                              Nizhnyaya Tunguska
                              Danube
                              Breg
                              Zambezi
                              Vilyuy
                              Ganges
                              Hooghly
                              Padma
                              Amu Darya
                              Panj
                              Japurá
                              Nelson
                              Saskatchewan
                              Paraguay
                              Kolyma
                              Pilcomayo
                              Biya
                              Katun
                              Ishim
                              Juruá
                              Ural
                              Arkansas
                              Colorado
                              Olenyok
                              Dnieper
                              Aldan
                              Ubangi
                              Uele
                              Negro
                              Columbia
                              Zhujiang
                              Red
                              Ayeyarwady
                              Kasai
                              Ohio
                              Allegheny
                              Orinoco
                              Tarim
                              Xingu
                              Orange
                              Salado
                              Vitim
                              Tigris
                              Songhua
                              Tapajós
                              Don
                              Podkamennaya Tunguska
                              Pechora
                              Kama
                              Limpopo
                              Chulym
                              Guaporé
                              Indigirka
                              Snake
                              Senegal
                              Uruguay
                              Blue Nile
                              Churchill
                              Khatanga
                              Okavango
                              Volta
                              Beni
                              Platte
                              Tobol
                              Alazeya
                              Jubba
                              Shebelle
                              Içá
                              Magdalena
                              Han
                              Kura
                              Oka
                              Guaviare
                              Pecos
                              Murrumbidgee
                              Godavari
                              Río Grande
                              Belaya
                              Cooper
                              Barcoo
                              Marañón
                              Dniester
                              Benue
                              Ili
                              Warburton
                              Georgina
                              Sutlej
                              Yamuna
                              Vyatka
                              Fraser
                              Brazos
                              Liao
                              Lachlan
                              Yalong
                              Iguaçu
                              Olyokma
                              Northern Dvina
                              Sukhona
                              Krishna
                              Iriri
                              Narmada
                              Lomami
                              Ottawa
                              Lerma
                              Grande de Santiago
                              Elbe
                              Vltava
                              Zeya
                              Juruena
                              Rhine
                              Athabasca
                              Canadian
                              North Saskatchewan
                              Vistula
                              Bug
                              Vaal
                              Shire
                              Ogooué
                              Nen
                              Kızılırmak
                              Markha
                              Green
                              Milk
                              Chindwin
                              Sankuru
                              Wu
                              James
                              Kapuas
                              Desna
                              Helmand
                              Madre de Dios
                              Tietê
                              Vychegda
                              Sepik
                              Cimarron
                              Anadyr
                              Paraíba do Sul
                              Jialing
                              Liard
                              Cumberland
                              White
                              Huallaga
                              Kwango
                              Draa
                              Gambia
                              Tyung
                              Chenab
                              Yellowstone
                              Ghaghara
                              Huai
                              Aras
                              Chu
                              Seversky Donets
                              Bermejo
                              Fly
                              Kuskokwim
                              Tennessee
                              Oder
                              Warta
                              Aruwimi
                              Daugava
                              Gila
                              Loire
                              Essequibo
                              Khoper
                              Tagus
                              Flinders
                              
                              • At end of the first line, we add some space chars till column 100

                              • Then, with a zero-length selection, at column 100, we insert a exclamation mark ( ! ) at end of all lines of the list :

                              => We get this temporary text ( I just listed the first lines and the last lines ) :

                              Nile                                                                                               !
                              White Nile                                                                                         !
                              Kagera                                                                                             !
                              Nyabarongo                                                                                         !
                              Mwogo                                                                                              !
                              Rukarara                                                                                           !
                              Amazon                                                                                             !
                              Ucayali                                                                                            !
                              Tambo                                                                                              !
                              Ene                                                                                                !
                              Mantaro                                                                                            !
                              Yangtze                                                                                            !
                              Mississippi                                                                                        !
                              Missouri                                                                                           !
                              ......                                                                                             !
                              ......                                                                                             !
                              ......                                                                                             !
                              ......                                                                                             !
                              Seversky Donets                                                                                    !
                              Bermejo                                                                                            !
                              Fly                                                                                                !
                              Kuskokwim                                                                                          !
                              Tennessee                                                                                          !
                              Oder                                                                                               !
                              Warta                                                                                              !
                              Aruwimi                                                                                            !
                              Daugava                                                                                            !
                              Gila                                                                                               !
                              Loire                                                                                              !
                              Essequibo                                                                                          !
                              Khoper                                                                                             !
                              Tagus                                                                                              !
                              Flinders                                                                                           !
                              
                              
                              • Now, we perform this regex S/R :

                                • SEARCH ^([\w -]+?)(\x20+)(?=!)

                                • REPLACE \2\1

                              => Again, we get this temporary text ( I just listed the first lines and the last lines ) :

                                                                                                                             Nile!
                                                                                                                       White Nile!
                                                                                                                           Kagera!
                                                                                                                       Nyabarongo!
                                                                                                                            Mwogo!
                                                                                                                         Rukarara!
                                                                                                                           Amazon!
                                                                                                                          Ucayali!
                                                                                                                            Tambo!
                                                                                                                              Ene!
                                                                                                                          Mantaro!
                                                                                                                          Yangtze!
                                                                                                                      Mississippi!
                                                                                                                         Missouri!
                                                                                                                           ......!
                                                                                                                           ......!
                                                                                                                           ......!
                                                                                                                           ......!
                                                                                                                  Seversky Donets!
                                                                                                                          Bermejo!
                                                                                                                              Fly!
                                                                                                                        Kuskokwim!
                                                                                                                        Tennessee!
                                                                                                                             Oder!
                                                                                                                            Warta!
                                                                                                                          Aruwimi!
                                                                                                                          Daugava!
                                                                                                                             Gila!
                                                                                                                            Loire!
                                                                                                                        Essequibo!
                                                                                                                           Khoper!
                                                                                                                            Tagus!
                                                                                                                         Flinders!
                              
                              • Then, we run the Edit > Line Operations > Sort Lines Lexicographically Ascending option

                              ==> Here is our sorted text ( I just listed the first lines and the last lines ) :

                                                                                                                               Ob!
                                                                                                                               Wu!
                                                                                                                              Bug!
                                                                                                                              Chu!
                                                                                                                              Don!
                                                                                                                              Ene!
                                                                                                                              Fly!
                                                                                                                              Han!
                                                                                                                              Ili!
                                                                                                                              Içá!
                                                                                                                              Nen!
                                                                                                                              Oka!
                                                                                                                              Red!
                                                                                                                             Amur!
                                                                                                                             Aras!
                                                                                                                           ......!
                                                                                                                           ......!
                                                                                                                           ......!
                                                                                                                           ......!
                                                                                                                     Saskatchewan!
                                                                                                                     Yellow River!
                                                                                                                    Madre de Dios!
                                                                                                                    Shatt al-Arab!
                                                                                                                    São Francisco!
                                                                                                                    Sênggê Zangbo!
                                                                                                                   Northern Dvina!
                                                                                                                   Paraíba do Sul!
                                                                                                                   Saint Lawrence!
                                                                                                                  Río de la Plata!
                                                                                                                  Seversky Donets!
                                                                                                               Grande de Santiago!
                                                                                                               Nizhnyaya Tunguska!
                                                                                                               North Saskatchewan!
                                                                                                            Podkamennaya Tunguska!
                              
                              • Finally, let’s run this last regex S/R

                                • SEARCH ^\x20+|!$

                                • REPLACE Leave EMPTY

                              => It remains our expected OUTPUT text, sorted by line length :

                              Ob
                              Wu
                              Bug
                              Chu
                              Don
                              Ene
                              Fly
                              Han
                              Ili
                              Içá
                              Nen
                              Oka
                              Red
                              Amur
                              Aras
                              Beni
                              Biya
                              Breg
                              Draa
                              Elbe
                              Gila
                              Huai
                              Ider
                              Kama
                              Kura
                              Lena
                              Liao
                              Milk
                              Nile
                              Oder
                              Ohio
                              Panj
                              Uele
                              Ural
                              Vaal
                              Zeya
                              Aldan
                              Argun
                              Benue
                              Caine
                              Congo
                              Desna
                              Green
                              Indus
                              Iriri
                              Ishim
                              James
                              Jubba
                              Juruá
                              Kasai
                              Katun
                              Lerma
                              Liard
                              Loire
                              Murat
                              Mwogo
                              Naryn
                              Negro
                              Niger
                              North
                              Padma
                              Peace
                              Pecos
                              Purús
                              Rhine
                              Rocha
                              Sepik
                              Shire
                              Slave
                              Snake
                              Tagus
                              Tambo
                              Tarim
                              Tietê
                              Tobol
                              Tyung
                              Vitim
                              Volga
                              Volta
                              Warta
                              White
                              Xingu
                              Yukon
                              Amazon
                              Anadyr
                              Angara
                              Barcoo
                              Belaya
                              Brazos
                              Chenab
                              Chulym
                              Cooper
                              Culgoa
                              Danube
                              Finlay
                              Fraser
                              Gambia
                              Ganges
                              Iguaçu
                              Irtysh
                              Japurá
                              Kagera
                              Kapuas
                              Khoper
                              Kolyma
                              Kwango
                              Lomami
                              Mamoré
                              Markha
                              Mekong
                              Murray
                              Nelson
                              Ogooué
                              Orange
                              Ottawa
                              Paraná
                              Platte
                              Salado
                              Sutlej
                              Tigris
                              Ubangi
                              Vilyuy
                              Vltava
                              Vyatka
                              Yalong
                              Yamuna
                              Alazeya
                              Aruwimi
                              Balonne
                              Bermejo
                              Darling
                              Daugava
                              Detroit
                              Dnieper
                              Guaporé
                              Helmand
                              Hooghly
                              Jialing
                              Juruena
                              Kherlen
                              Krishna
                              Lachlan
                              Limpopo
                              Madeira
                              Mantaro
                              Marañón
                              Narmada
                              Niagara
                              Olenyok
                              Olyokma
                              Orinoco
                              Pechora
                              Salween
                              Sankuru
                              Selenge
                              Senegal
                              Songhua
                              Sukhona
                              Tapajós
                              Tsangpo
                              Ucayali
                              Uruguay
                              Vistula
                              Yangtze
                              Yenisei
                              Zambezi
                              Araguaia
                              Arkansas
                              Canadian
                              Chindwin
                              Cimarron
                              Colorado
                              Columbia
                              Dniester
                              Flinders
                              Georgina
                              Ghaghara
                              Godavari
                              Guaviare
                              Huallaga
                              Khatanga
                              Missouri
                              Okavango
                              Paraguay
                              Red Rock
                              Rukarara
                              Shebelle
                              Vychegda
                              Zhujiang
                              Allegheny
                              Amu Darya
                              Athabasca
                              Blue Nile
                              Chambeshi
                              Churchill
                              Condamine
                              Essequibo
                              Euphrates
                              Indigirka
                              Jefferson
                              Kuskokwim
                              Mackenzie
                              Magdalena
                              Pilcomayo
                              Syr Darya
                              Tennessee
                              Tocantins
                              Warburton
                              Ayeyarwady
                              Beaverhead
                              Cumberland
                              Kızılırmak
                              Nyabarongo
                              Río Grande
                              White Nile
                              Brahmaputra
                              Mississippi
                              Saint Clair
                              Saint Louis
                              Saint Marys
                              Yellowstone
                              Hell Roaring
                              Murrumbidgee
                              Saskatchewan
                              Yellow River
                              Madre de Dios
                              Shatt al-Arab
                              São Francisco
                              Sênggê Zangbo
                              Northern Dvina
                              Paraíba do Sul
                              Saint Lawrence
                              Río de la Plata
                              Seversky Donets
                              Grande de Santiago
                              Nizhnyaya Tunguska
                              North Saskatchewan
                              Podkamennaya Tunguska
                              

                              That’s all ! Neat, isn’t it ?

                              Best Regards,

                              guy038

                              1 Reply Last reply Reply Quote 2
                              • CoisesC
                                Coises
                                last edited by Coises

                                @Thomas-Knoefel

                                I received a feature request related to this post. It doesn’t quite feel like a good fit for Columns++ to me, but I think your MultiReplace plugin can assist in making this possible in a reasonable number of steps.

                                I believe multi-replace can be set up to find ^.*$ and replace with set(string.len(MATCH).." "..MATCH).

                                Then Edit | Line operations | Sort Lines As Integers Ascending will sort the lines in order by length, and then ^\d+\x20 replaced with nothing would remove the lengths.

                                1 Reply Last reply Reply Quote 1
                                • Mark OlsonM
                                  Mark Olson
                                  last edited by Mark Olson

                                  JsonTools v6.0 or higher, open treeview for document, go to REGEX mode, enter query @ = s_join(`\r\n`, sort_by(s_split(@, `\r\n`), s_len(@)))
                                  Hopefully the syntax is reasonably easy to understand- split the file by \r\n, sort the list of lines by string length, then set the document’s text (@) to the result of string-joining the list back together with \r\n.

                                  This converts

                                  abcdefg
                                  ab
                                  abcdefgh
                                  a
                                  abcdefghi
                                  abcde
                                  abcd
                                  abc
                                  

                                  into

                                  a
                                  ab
                                  abc
                                  abcd
                                  abcde
                                  abcdefg
                                  abcdefgh
                                  abcdefghi
                                  
                                  Mahmoud MadkourM 1 Reply Last reply Reply Quote 2
                                  • CoisesC
                                    Coises
                                    last edited by

                                    In case anyone comes across this topic looking for a way to sort lines by length, Columns++ release 1.0.1 can do this.

                                    Select Sort… from the Columns++ menu and let it enclose the entire document in a rectangular selection (or make your own selection first).

                                    Use Whole lines, Ascending or Descending as desired, and Width. You can then sort on Entire column, unless you wish to use one of the other options.

                                    The sort is based on the on-screen width of text in the current font. Columns++ is meant to deal with data in columns using tabs, including elastic tabstops and proportionally-spaced fonts; I found that using the width, rather than a count of characters, was the most consistent way to deal with all the variations in a way that makes intuitive sense for users. For files using monospaced fonts and no tabs, the results are the same as counting characters.

                                    1 Reply Last reply Reply Quote 4
                                    • Mahmoud MadkourM
                                      Mahmoud Madkour @Mark Olson
                                      last edited by

                                      @Mark-Olson , your proposed solution seems to be so easy but can you please elaborate more,
                                      1- how to open the file in tree view
                                      2- how to go to REGEX mode to enter the query

                                      many thanks

                                      Mark OlsonM 1 Reply Last reply Reply Quote 0
                                      • Mark OlsonM
                                        Mark Olson @Mahmoud Madkour
                                        last edited by

                                        @Mahmoud-Madkour
                                        To open a tree view for a file in REGEX mode, just use the Regex search to JSON command from the JsonTools plugin menu.
                                        Once the tree view is open, you can paste the query into the text box at the top right corner of the tree view, and click the Submit query button next to the text box.

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