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.
    • Alan KilbornA
      Alan Kilborn @Dave Pruce
      last edited by

      @Dave-Pruce

      As gently as possible…quiet now…here it comes: no (sorry), not with Notepad++ itself.

      A lot of other ways, though: think “programming”.

      1 Reply Last reply Reply Quote 0
      • 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