Community
    • Login

    File sorting

    Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
    20 Posts 8 Posters 5.3k 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.
    • 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