Sort Lines Lexicographically did not work
-
Here is the list of lines. Notice that at line 184 things are not sorted even though I ran the sort lines lexicographically before pasting the list into the page. Also there are duplicates that should be next to each other but are not. DOS sort works just fine. Is it possible that the length of the list is to long?
Notepad++ v7.5.8 (32-bit)
Build time : Jul 23 2018 - 02:03:53
Path : C:\Program Files (x86)\Notepad++\notepad++.exe
Admin mode : OFF
Local Conf mode : OFF
OS : Windows 10 (64-bit)
Plugins : ComparePlugin.dll CustomizeToolbar.dll docMonitor.unicode.dll Explorer.dll HexEditor.dll PluginManager.dll TakeNotes.dll XMLTools.dll DSpellCheck.dll mimeTools.dll NppConverter.dll NppExport.dllAaliyah
Abigail
Adam
Addison
Adolphe
Aidenv
Aisha
Alberta
Alexander
Alexandra
Alexis
Ali
Alice
Alyssa
Amelia
Andrew
Angus
Anna
Annabelle
Anthony
Archer
Archie
Aria
Ariana
Arlo
Ashton
Athena
Atlas
Atticus
Audrey
Aurora
Austin
Ava
Ayla
Beau
Beazer
Bella
Benjamin
Bertha
Betty
Biggest
Bill
Billie
BiscuitBarrel
Blake
Blythe
Bodhi
Boop
Bottom
Bottomfeeder
Braxton
Brody
Bush
Butt
Caesar
Caleb
Campbell
Carter
Carway
Cecilia
Charles
Charlie
Charlotte
Chase
Chelsea
Chloe
Christian
Christianson
Claire
Coioton
Colt
Connor
Constantine
Cooper
Crabby
Daisy
Dan
Daniel
David
Deangelo
Delilah
Diana
Dominic
Donald
Dork
Doug
Douglas
Dracula
Dylan
Eden
Edward
Eleanor
Eli
Elijah
Eliza
Elizabeth
Ella
Ellie
Eloise
Elsie
Emilia
Emily
Emma
Ethan
Eva
Eve
Evelyn
Evie
Fanny
Fearn
Felix
Finn
Owen
Paige
Patrick
Penelope
Pepper
Phoebe
Piper
Poppy
Prudence
Quince
Rebecca
Riley
Rory
Rose
Ross
RossGerm
Ruby
Ryan
Ryder
Samuel
Sarah
Savannah
Scarlett
Sebastian
Services
Sienna
Smith
Sofia
Sophia
Sophie
SpongeBob
SquidWorth
Stella
Stephan
Steven
Summer
Super
Tarquin
Teresa
Theodore
Thomas
Thurman
Toby
Trump
Tyler
Ulysis
VanHelsing
Venus
Victor
Victoria
Violet
Wagering
Waterton
WelshHuggins
WhoCares
Wigglebottom
Wiggleworth
William
Willow
Wilson
Winifred
Winter
Wolfeschlegels
Xavier
Xenophon
Yetty
Zachary
Zappa
Zara
Zeno
Zevon
Zoe
Flynn
Frankenstein
Frankie
Franklin
Gabriel
Gabriella
George
Georgia
Germbag
Gertrude
Grace
Hamish
Hannah
Harley
Harlow
Harper
Harriet
Harrison
Harry
Harvey
Hayden
Hazel
Headbanger
Henry
Hernandez
Holly
Hudson
Hugo
Hunter
Hypatia
Hyxxeljksser
Imma
Imogen
Indiana
Inez
Isaac
Isabel
Isabella
Isabelle
Isla
Ivy
Jack
Jackson
Jacob
Jake
James
Jane
Jasmine
Jason
Jasper
Jaxon
Jayden
Jesse
Jessica
Jim
John
Jonathan
Jones
Jordan
Joseph
Joshua
Juniper
Kai
Kate
Kauror
Kirk
Krieper
Lachlan
Lara
Layla
Leah
Leo
Leon
Lethbridge
Levi
Liam
Lillian
Lilly
Lily
Lincoln
Logan
Lola
Louis
Louise
Luca
Lucas
Lucy
Luke
Mackenzie
Maddison
Madeleine
Madeline
Madison
Magnum
Marcus
Martin
Maryam
Mason
Matilda
Matt
Matthew
Maud
Max
Maxwell
Maya
Meyer
Mia
Michael
Mila
Molly
Muhammad
Nate
Nathan
Nathaniel
Nero
Nicholas
Nick
Noah
Nora
OBrien
Olive
Oliver
Olivia
Ophelia
Oscar
Owen
Paige
Patrick
Penelope
Pepper
Phoebe
Piper
Poppy
Prudence
Quince
Rebecca
Riley
Rory
Rose
Ross
RossGerm
Ruby
Ryan
Ryder
Samuel
Sarah
Savannah
Scarlett
Sebastian
Services
Sienna
Smith
Sofia
Sophia
Sophie
SpongeBob
SquidWorth
Stella
Stephan
Steven
Summer
Super
Tarquin
Teresa
Theodore
Thomas
Thurman
Toby
Trump
Tyler
Ulysis
VanHelsing
Venus
Victor
Victoria
Violet
Wagering
Waterton
WelshHuggins
WhoCares
Wigglebottom
Wiggleworth
William
Willow
Wilson
Winifred
Winter
Wolfeschlegels
Xavier
Xenophon
Yetty
Zachary
Zappa
Zara
Zeno
Zevon
Zoe -
It works for me.
Notepad++ v7.5.8 (32-bit)
Build time : Jul 23 2018 - 02:03:53
Path : C:\Program Files (x86)\Notepad++\notepad++.exe
Admin mode : OFF
Local Conf mode : OFF
OS : Windows 10 (64-bit)
Plugins : ComparePlugin.dll dbgpPlugin.dll NppExec.dll NppFTP.dll NppTextFX.dll PluginManager.dll PreviewHTML.dll PythonScript.dll DSpellCheck.dll mimeTools.dll NppConverter.dll NppExport.dllIf I copy the data you posted, create a new file, paste, and do Edit > Line Operations > Sort Lines Lexicographically Ascending, it sorts. The results are:
Aaliyah Abigail Adam Addison Adolphe Aidenv Aisha Alberta Alexander Alexandra Alexis Ali Alice Alyssa Amelia Andrew Angus Anna Annabelle Anthony Archer Archie Aria Ariana Arlo Ashton Athena Atlas Atticus Audrey Aurora Austin Ava Ayla Beau Beazer Bella Benjamin Bertha Betty Biggest Bill Billie BiscuitBarrel Blake Blythe Bodhi Boop Bottom Bottomfeeder Braxton Brody Bush Butt Caesar Caleb Campbell Carter Carway Cecilia Charles Charlie Charlotte Chase Chelsea Chloe Christian Christianson Claire Coioton Colt Connor Constantine Cooper Crabby Daisy Dan Daniel David Deangelo Delilah Diana Dominic Donald Dork Doug Douglas Dracula Dylan Eden Edward Eleanor Eli Elijah Eliza Elizabeth Ella Ellie Eloise Elsie Emilia Emily Emma Ethan Eva Eve Evelyn Evie Fanny Fearn Felix Finn Flynn Frankenstein Frankie Franklin Gabriel Gabriella George Georgia Germbag Gertrude Grace Hamish Hannah Harley Harlow Harper Harriet Harrison Harry Harvey Hayden Hazel Headbanger Henry Hernandez Holly Hudson Hugo Hunter Hypatia Hyxxeljksser Imma Imogen Indiana Inez Isaac Isabel Isabella Isabelle Isla Ivy Jack Jackson Jacob Jake James Jane Jasmine Jason Jasper Jaxon Jayden Jesse Jessica Jim John Jonathan Jones Jordan Joseph Joshua Juniper Kai Kate Kauror Kirk Krieper Lachlan Lara Layla Leah Leo Leon Lethbridge Levi Liam Lillian Lilly Lily Lincoln Logan Lola Louis Louise Luca Lucas Lucy Luke Mackenzie Maddison Madeleine Madeline Madison Magnum Marcus Martin Maryam Mason Matilda Matt Matthew Maud Max Maxwell Maya Meyer Mia Michael Mila Molly Muhammad Nate Nathan Nathaniel Nero Nicholas Nick Noah Nora OBrien Olive Oliver Olivia Ophelia Oscar Owen Owen Paige Paige Patrick Patrick Penelope Penelope Pepper Pepper Phoebe Phoebe Piper Piper Poppy Poppy Prudence Prudence Quince Quince Rebecca Rebecca Riley Riley Rory Rory Rose Rose Ross Ross RossGerm RossGerm Ruby Ruby Ryan Ryan Ryder Ryder Samuel Samuel Sarah Sarah Savannah Savannah Scarlett Scarlett Sebastian Sebastian Services Services Sienna Sienna Smith Smith Sofia Sofia Sophia Sophia Sophie Sophie SpongeBob SpongeBob SquidWorth SquidWorth Stella Stella Stephan Stephan Steven Steven Summer Summer Super Super Tarquin Tarquin Teresa Teresa Theodore Theodore Thomas Thomas Thurman Thurman Toby Toby Trump Trump Tyler Tyler Ulysis Ulysis VanHelsing VanHelsing Venus Venus Victor Victor Victoria Victoria Violet Violet Wagering Wagering Waterton Waterton WelshHuggins WelshHuggins WhoCares WhoCares Wigglebottom Wigglebottom Wiggleworth Wiggleworth William William Willow Willow Wilson Wilson Winifred Winifred Winter Winter Wolfeschlegels Wolfeschlegels Xavier Xavier Xenophon Xenophon Yetty Yetty Zachary Zachary Zappa Zappa Zara Zara Zeno Zeno Zevon Zevon Zoe Zoe
There’s nothing about your data that would cause it to not sort. There’s nothing about the Notepad++ v7.5.8 32-bit executable that would cause it not to sort. Either one of your plugins is interfering (try again, but use
notepad++.exe -noPlugin
when running, instead of your normal shortcut – you can even edit your normal shortcut to include that option; I just tried, and it still sorted just fine for me), or there is user error.Did you try the short list, like I showed in my screen capture movie? Does that work for you, or not?
-
Just had the same problem. In MY case, the reason was: The file was protected from changes (was opened from TMP folder). I could not type anything.
Once I had saved it as a new file on the desktop, I could type, and thus sorting also worked.
-
It seems that in Notepadd++ 7.7.1 there needs to be at least one empty line after the last line of text, otherwise the sorting function doesn’t do anything.
If end of file is in an empty line after the last line of text, sorting works:
text
text
<EOF>If end of file is at the end of the last line of text, sorting doesn’t work:
text
text<EOF> -
@r-l said:
in Notepadd++ 7.7.1 there needs to be at least one empty line after the last line of text, otherwise the sorting function doesn’t do anything
This is NOT true when I try it. Can you provide anything more to help reproduce?
-
You’re right. And I just realized what my mistake was.
I had searched and replaced certain character sequences prior to sorting, to insert linebreaks. In Notepad++ that linebreak must be “\r\n” rather than just “\n”. With correct linebreaks, sorting works fine. With just “\n”, the sorting function sees the whole file as one single line. Likewise, when I add an empty line at the end of the file, it only sorts that empty line to the beginning of the file but doesn’t change the sequency of anything else.
So, sorry for the noise… :-)
-
@r-l said:
In Notepad++ that linebreak must be “\r\n” rather than just “\n”
Only if you want it to be. There are Windows files (\r\n) and there are Linux (\n) files when it comes to “line endings”. If you are doing regular expression replacements, you absolutely need to be careful about using \r\n versus using \n. There is nothing there to protect you from yourself.
And…sorting is known to have problems when you have mixed line-endings in the data, something you shouldn’t allow to happen unless you really know what you are doing, and really need that situation.
-
I often have problems sorting text in NotePaid++ - I’m set as Windows CR/LF etc. The problem seems to arise if spaces and tabs are interspersed as beginning of line characters…
Here is an example:
BuildAccount() // Summary of Posted Transactions BuildAudAcct() // Tax Records that relate to Account Records.... BuildAudit() // Daily & Account BuildBankRec() BuildCheque() BuildContainer() BuildCounterIDs() // Apr 2020 BuildDepot( ) BuildEvents( ) // Dec 2019 BuildFinBat() BuildGrower() BuildImpBat() BuildPayGrp() BuildPostBat() BuildPrice() BuildProcess() BuildProduct() BuildReceipts() BuildTax( ) BuildVariety() // June 2015
BuildChqFmt() // Note the Spaces in front of these lines rather than tabs
BuildRptCfg( ) // this seems to be the cause of the problems
BuildVoid() -
The data in the black code region seems already sorted?
What’s the significance of the 3 items below the code box?
And I don’t see any leading spaces/tabs anywhere?
-
@Alan-Kilborn I suspect what happened there is that the lines DID have tabs and spaces, respectively, when they pasted it into their post, but the tabs caused the black box. The three after used a different whitespace, and so were not included in the black box. (But apparently the whitespace was formatted away?) Note that, if you expect sorting to ignore leading whitespace, the three lines after the box should be interspersed between lines within the box (but are not).
-
That’s a good explanation of what might have happened here.
But since the OP never returned to continue the exchange, I suppose the issue is dead.if you expect sorting to ignore leading whitespace
Just a note to say that Notepad++'s sorting doesn’t ignore leading whitespace, just in case someone thinks it can from the above.
-
This post is deleted! -
Maybe it could be helpful for anyone else. I had this issue, and the problem was related with the line break codes.
Even if you are seeing different lines, is possible that only one of the line break codes (\n or \r) is being used. If that’s the case, sorting won’t work as it will take all the text as just one single line. You can check this enabling the “Show all characters” option:
LF is the code for Line Feed (\n). But it’s missing the CR (Carriage Return, \r) code. Unlike Unix systems, standard line-termination in Windows and in the Internet is \r\n.
So if you replace these line-termination codes activating the extended search mode (replacing \n with \r\n), it will work.
-
Interesting. It sorts correctly for me.
I thought maybe if you have mixed line endings, where some don’t match the current line-endings mode:
=>
Yeah, that’s it:correctly\nsorted
andthese\nlines
were treated as single lines.So, as long as you don’t have mixed line endings, and your line endings match the defined line endings setting shown in the status bar, it will work. But if there’s a mix or discrepancy, it won’t be treated as a line ending.
-
Thank you for these posts - I love everything about NotePad++ EXCEPT line sorting because I’ve never understood why NotePad++ was inconsistent with line sorting until I read this. Now I can use it with more confidence.
On reflection it would seem that this is an unnecessary pain for those who work in all 3 line ending environments and wondering if we couldn’t throw something into settings that could possibly be like this:
[ X ] SORT Line Ending Agnostic (will treat CR, CR-LF and LF equally as line endings when sorting) -
What is a good example of why someone would need to “mix” line-ending types within one file? I don’t think I’ve ever run across a good reason for this. I welcome being enlightened.
-
@gitberry said in Sort Lines Lexicographically did not work:
Line Ending Agnostic (will treat CR, CR-LF and LF equally as line endings when sorting)
If you read @PeterJones post his last remarks were:
So, as long as you don’t have mixed line endings, and your line endings match the defined line endings setting shown in the status bar, it will work.So if a file ONLY contains 1 type of line ending and that matches the status bar then sorting will work as expected. This seems to me to be a reasonable assumption by the developers.
Maybe I’m naive when to it comes to the various line endings (Unix, Mac vs Windows) but I don’t see why a file would contain a mixture of the 3 types, unless there had been an error in encoding or reading of the file. So AFAIK a file would ONLY ever contain 1 type of line ending, and that depends on the use/environment the file is being used in.
Notepad++ also has a function which resides under Edit main menu, called EOL Conversion where the file is “totally” converted from one type to another. maybe this should be used before a sort operation if at all unsure of whether there is a mixture of types.
Terry
-
@Alan-Kilborn So true! I don’t think there is a good reason. When it happens (ie received from am uncaring/uncareful source etc) and the sort doesn’t work…
-
@gitberry said in Sort Lines Lexicographically did not work:
So true! I don’t think there is a good reason. When it happens (ie received from am uncaring/uncareful source etc) and the sort doesn’t work…
If you are likely to get files of that nature from another source, suggest you “sanitize” them before beginning to work with them.
For example, do a line-ending conversion in Notepad++, which will unify the line-endings all to one type (whichever type you desire). After that, do your sort, or whatever other data manipulations you need to do.
(I guess Terry already said the same thing; sorry, didn’t see that first before crafting this reply)
-
@Terry-R said in Sort Lines Lexicographically did not work:
I don’t see why a file would contain a mixture of the 3 types, unless there had been an error in encoding or reading of the file. So AFAIK a file would ONLY ever contain 1 type of line ending, and that depends on the use/environment the file is being used in.
Amen, brother, amen.
However, Notepad++ (Scintilla) doesn’t enforce this.
And, by default, it doesn’t let you know that you have “screwed up” files when this situation happens to occur.One way for it to occur is the aforementioned reception of files from another source.
Another way for it to happen is a regex replacement where uses think that
\n
works to match a line-ending of any type. It does NOT ;\R
should be used instead for this purpose. But, again, Notepad++ lets you do it, so line-ending weirdness can happen from this.A good way to “set it and forget it” to avoid this type of problem is by using the EditorConfig plugin. With that, you specify your desired line-ending type, and when files are saved in Notepad++, the plugin steps in and corrects any improper line-endings to your desired type.
An alternative way to monitor the situation is to turn on visible line-endings and then hope you notice a mismatch. However, looking at the “heavy” line-ending character representation is too visually overwhelming for me. YMMV.