Sorting numerically Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) 2019 Community Moderator Election Results Why I closed the “Why is Kali so hard” questionsorting filenames numerically when they have non-numeric prefixNumerically sorting filesSorting data faster approachHow to sort lines that contain “_” numerically?Sort unix alphabetically then numerically, not working as I intendedSorting filenamesCan you sort one column lexicographically while simultaneously sorting the next column numerically?sorting numerically in unixSorting numerically by character field position within fieldsort a list numerically and alphabetically

How to recreate this effect in Photoshop?

Why don't the Weasley twins use magic outside of school if the Trace can only find the location of spells cast?

Check which numbers satisfy the condition [A*B*C = A! + B! + C!]

Who can trigger ship-wide alerts in Star Trek?

Stars Make Stars

Single word antonym of "flightless"

What are the pros and cons of Aerospike nosecones?

Jazz greats knew nothing of modes. Why are they used to improvise on standards?

How should I respond to a player wanting to catch a sword between their hands?

Could transporting electricity using plastic water pipes be feasible?

List *all* the tuples!

Why does Python start at index 1 when iterating an array backwards?

What are the options for player characters to create traps?

Should gear shift center itself while in neutral?

When is phishing education going too far?

cpython3 different behavior between running a file line by line in interpreter mode and "python3 file"

Is there a service that would inform me whenever a new direct route is scheduled from a given airport?

What do you call a plan that's an alternative plan in case your initial plan fails?

How to set input type 'Select' in ui_component grid in magento 2.1.16

Project this triangle on surface of a sphere

Does polymorph use a PC’s CR or its level?

How do I keep my slimes from escaping their pens?

Area of a 2D convex hull

How widely used is the term Treppenwitz? Is it something that most Germans know?



Sorting numerically



Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)
2019 Community Moderator Election Results
Why I closed the “Why is Kali so hard” questionsorting filenames numerically when they have non-numeric prefixNumerically sorting filesSorting data faster approachHow to sort lines that contain “_” numerically?Sort unix alphabetically then numerically, not working as I intendedSorting filenamesCan you sort one column lexicographically while simultaneously sorting the next column numerically?sorting numerically in unixSorting numerically by character field position within fieldsort a list numerically and alphabetically



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








1















I have a file called data whose contents are



id,col1,col2
0,-0.3479417882673812,0.5664382596767175
1,-0.26800930980980764,0.2952025161991604
2,-0.4159790791116641,-1.3375045524610152
3,-0.7859665489205871,-0.6428101880909471
4,-1.3922759043388822,-1.676262144826317
5,-1.2471867496427498,-0.4912119581361516
6,1.443385383041667,1.6974039491263593
7,-2.058899802821969,2.0607628464079917
8,-0.10641338441541626,0.035929568275064216
9,-0.517273684861199,-0.6184800988804992
10,-0.9934859021679552,1.0577312348984502
11,0.5923834706792905,-0.6693757541250825
12,0.8657741917554445,-0.6876271057571398
13,-1.2061097548360489,-0.7402582563022937
14,0.78768021182158,-0.38607117005262315


Sorting numerically (-n) on the first column gives



$ sort -nk1 -t"," data
0,-0.3479417882673812,0.5664382596767175
id,col1,col2
1,-0.26800930980980764,0.2952025161991604
2,-0.4159790791116641,-1.3375045524610152
3,-0.7859665489205871,-0.6428101880909471
4,-1.3922759043388822,-1.676262144826317
5,-1.2471867496427498,-0.4912119581361516
7,-2.058899802821969,2.0607628464079917
8,-0.10641338441541626,0.035929568275064216
9,-0.517273684861199,-0.6184800988804992
10,-0.9934859021679552,1.0577312348984502
13,-1.2061097548360489,-0.7402582563022937
6,1.443385383041667,1.6974039491263593
11,0.5923834706792905,-0.6693757541250825
12,0.8657741917554445,-0.6876271057571398
14,0.78768021182158,-0.38607117005262315


This absolutely bizarre to me. I read in the man page that -n is supposed to be numerical sort. Why would id be placed in-between numbers? How is it that 10 is larger than 9, but smaller than 6, all the while 11 being greater than them all?



The -g seems to work as I want (and as I think is natural), but this -n option totally escapes me. What's this about? I think it can be related to locale, but once I specify the delimiter as being ,, I don't think that would explain it.










share|improve this question







New contributor




user347221 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.


























    1















    I have a file called data whose contents are



    id,col1,col2
    0,-0.3479417882673812,0.5664382596767175
    1,-0.26800930980980764,0.2952025161991604
    2,-0.4159790791116641,-1.3375045524610152
    3,-0.7859665489205871,-0.6428101880909471
    4,-1.3922759043388822,-1.676262144826317
    5,-1.2471867496427498,-0.4912119581361516
    6,1.443385383041667,1.6974039491263593
    7,-2.058899802821969,2.0607628464079917
    8,-0.10641338441541626,0.035929568275064216
    9,-0.517273684861199,-0.6184800988804992
    10,-0.9934859021679552,1.0577312348984502
    11,0.5923834706792905,-0.6693757541250825
    12,0.8657741917554445,-0.6876271057571398
    13,-1.2061097548360489,-0.7402582563022937
    14,0.78768021182158,-0.38607117005262315


    Sorting numerically (-n) on the first column gives



    $ sort -nk1 -t"," data
    0,-0.3479417882673812,0.5664382596767175
    id,col1,col2
    1,-0.26800930980980764,0.2952025161991604
    2,-0.4159790791116641,-1.3375045524610152
    3,-0.7859665489205871,-0.6428101880909471
    4,-1.3922759043388822,-1.676262144826317
    5,-1.2471867496427498,-0.4912119581361516
    7,-2.058899802821969,2.0607628464079917
    8,-0.10641338441541626,0.035929568275064216
    9,-0.517273684861199,-0.6184800988804992
    10,-0.9934859021679552,1.0577312348984502
    13,-1.2061097548360489,-0.7402582563022937
    6,1.443385383041667,1.6974039491263593
    11,0.5923834706792905,-0.6693757541250825
    12,0.8657741917554445,-0.6876271057571398
    14,0.78768021182158,-0.38607117005262315


    This absolutely bizarre to me. I read in the man page that -n is supposed to be numerical sort. Why would id be placed in-between numbers? How is it that 10 is larger than 9, but smaller than 6, all the while 11 being greater than them all?



    The -g seems to work as I want (and as I think is natural), but this -n option totally escapes me. What's this about? I think it can be related to locale, but once I specify the delimiter as being ,, I don't think that would explain it.










    share|improve this question







    New contributor




    user347221 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.






















      1












      1








      1








      I have a file called data whose contents are



      id,col1,col2
      0,-0.3479417882673812,0.5664382596767175
      1,-0.26800930980980764,0.2952025161991604
      2,-0.4159790791116641,-1.3375045524610152
      3,-0.7859665489205871,-0.6428101880909471
      4,-1.3922759043388822,-1.676262144826317
      5,-1.2471867496427498,-0.4912119581361516
      6,1.443385383041667,1.6974039491263593
      7,-2.058899802821969,2.0607628464079917
      8,-0.10641338441541626,0.035929568275064216
      9,-0.517273684861199,-0.6184800988804992
      10,-0.9934859021679552,1.0577312348984502
      11,0.5923834706792905,-0.6693757541250825
      12,0.8657741917554445,-0.6876271057571398
      13,-1.2061097548360489,-0.7402582563022937
      14,0.78768021182158,-0.38607117005262315


      Sorting numerically (-n) on the first column gives



      $ sort -nk1 -t"," data
      0,-0.3479417882673812,0.5664382596767175
      id,col1,col2
      1,-0.26800930980980764,0.2952025161991604
      2,-0.4159790791116641,-1.3375045524610152
      3,-0.7859665489205871,-0.6428101880909471
      4,-1.3922759043388822,-1.676262144826317
      5,-1.2471867496427498,-0.4912119581361516
      7,-2.058899802821969,2.0607628464079917
      8,-0.10641338441541626,0.035929568275064216
      9,-0.517273684861199,-0.6184800988804992
      10,-0.9934859021679552,1.0577312348984502
      13,-1.2061097548360489,-0.7402582563022937
      6,1.443385383041667,1.6974039491263593
      11,0.5923834706792905,-0.6693757541250825
      12,0.8657741917554445,-0.6876271057571398
      14,0.78768021182158,-0.38607117005262315


      This absolutely bizarre to me. I read in the man page that -n is supposed to be numerical sort. Why would id be placed in-between numbers? How is it that 10 is larger than 9, but smaller than 6, all the while 11 being greater than them all?



      The -g seems to work as I want (and as I think is natural), but this -n option totally escapes me. What's this about? I think it can be related to locale, but once I specify the delimiter as being ,, I don't think that would explain it.










      share|improve this question







      New contributor




      user347221 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.












      I have a file called data whose contents are



      id,col1,col2
      0,-0.3479417882673812,0.5664382596767175
      1,-0.26800930980980764,0.2952025161991604
      2,-0.4159790791116641,-1.3375045524610152
      3,-0.7859665489205871,-0.6428101880909471
      4,-1.3922759043388822,-1.676262144826317
      5,-1.2471867496427498,-0.4912119581361516
      6,1.443385383041667,1.6974039491263593
      7,-2.058899802821969,2.0607628464079917
      8,-0.10641338441541626,0.035929568275064216
      9,-0.517273684861199,-0.6184800988804992
      10,-0.9934859021679552,1.0577312348984502
      11,0.5923834706792905,-0.6693757541250825
      12,0.8657741917554445,-0.6876271057571398
      13,-1.2061097548360489,-0.7402582563022937
      14,0.78768021182158,-0.38607117005262315


      Sorting numerically (-n) on the first column gives



      $ sort -nk1 -t"," data
      0,-0.3479417882673812,0.5664382596767175
      id,col1,col2
      1,-0.26800930980980764,0.2952025161991604
      2,-0.4159790791116641,-1.3375045524610152
      3,-0.7859665489205871,-0.6428101880909471
      4,-1.3922759043388822,-1.676262144826317
      5,-1.2471867496427498,-0.4912119581361516
      7,-2.058899802821969,2.0607628464079917
      8,-0.10641338441541626,0.035929568275064216
      9,-0.517273684861199,-0.6184800988804992
      10,-0.9934859021679552,1.0577312348984502
      13,-1.2061097548360489,-0.7402582563022937
      6,1.443385383041667,1.6974039491263593
      11,0.5923834706792905,-0.6693757541250825
      12,0.8657741917554445,-0.6876271057571398
      14,0.78768021182158,-0.38607117005262315


      This absolutely bizarre to me. I read in the man page that -n is supposed to be numerical sort. Why would id be placed in-between numbers? How is it that 10 is larger than 9, but smaller than 6, all the while 11 being greater than them all?



      The -g seems to work as I want (and as I think is natural), but this -n option totally escapes me. What's this about? I think it can be related to locale, but once I specify the delimiter as being ,, I don't think that would explain it.







      sort






      share|improve this question







      New contributor




      user347221 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question







      New contributor




      user347221 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question






      New contributor




      user347221 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 1 hour ago









      user347221user347221

      203




      203




      New contributor




      user347221 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      user347221 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      user347221 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.




















          1 Answer
          1






          active

          oldest

          votes


















          6














          In English locales, , is the thousand separator, which is ignored in numbers.



          -k1 defines a key that starts with the first field, but as you didn't specify where it stops, ends at the end of the line, so the sort key is the full line, which is the default.



          So sort -t, -k1 -n is exactly the same as sort -n. With , ignored, you're sorting on these numbers:



          0
          1
          2
          3
          4
          5
          61.4433853830416671
          7
          8
          9
          10
          110.5923834706792905
          120.8657741917554445
          13
          140.78768021182158


          Here, you want:



          sort -t, -n -k1,1


          To sort on the first , delimited field only.



          You can also use sort -n in the C locale where , is neither the decimal radix nor the thousand separator (and . is the decimal radix):



          LC_ALL=C sort -n





          share|improve this answer

























            Your Answer








            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "106"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );






            user347221 is a new contributor. Be nice, and check out our Code of Conduct.









            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f512596%2fsorting-numerically%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            6














            In English locales, , is the thousand separator, which is ignored in numbers.



            -k1 defines a key that starts with the first field, but as you didn't specify where it stops, ends at the end of the line, so the sort key is the full line, which is the default.



            So sort -t, -k1 -n is exactly the same as sort -n. With , ignored, you're sorting on these numbers:



            0
            1
            2
            3
            4
            5
            61.4433853830416671
            7
            8
            9
            10
            110.5923834706792905
            120.8657741917554445
            13
            140.78768021182158


            Here, you want:



            sort -t, -n -k1,1


            To sort on the first , delimited field only.



            You can also use sort -n in the C locale where , is neither the decimal radix nor the thousand separator (and . is the decimal radix):



            LC_ALL=C sort -n





            share|improve this answer





























              6














              In English locales, , is the thousand separator, which is ignored in numbers.



              -k1 defines a key that starts with the first field, but as you didn't specify where it stops, ends at the end of the line, so the sort key is the full line, which is the default.



              So sort -t, -k1 -n is exactly the same as sort -n. With , ignored, you're sorting on these numbers:



              0
              1
              2
              3
              4
              5
              61.4433853830416671
              7
              8
              9
              10
              110.5923834706792905
              120.8657741917554445
              13
              140.78768021182158


              Here, you want:



              sort -t, -n -k1,1


              To sort on the first , delimited field only.



              You can also use sort -n in the C locale where , is neither the decimal radix nor the thousand separator (and . is the decimal radix):



              LC_ALL=C sort -n





              share|improve this answer



























                6












                6








                6







                In English locales, , is the thousand separator, which is ignored in numbers.



                -k1 defines a key that starts with the first field, but as you didn't specify where it stops, ends at the end of the line, so the sort key is the full line, which is the default.



                So sort -t, -k1 -n is exactly the same as sort -n. With , ignored, you're sorting on these numbers:



                0
                1
                2
                3
                4
                5
                61.4433853830416671
                7
                8
                9
                10
                110.5923834706792905
                120.8657741917554445
                13
                140.78768021182158


                Here, you want:



                sort -t, -n -k1,1


                To sort on the first , delimited field only.



                You can also use sort -n in the C locale where , is neither the decimal radix nor the thousand separator (and . is the decimal radix):



                LC_ALL=C sort -n





                share|improve this answer















                In English locales, , is the thousand separator, which is ignored in numbers.



                -k1 defines a key that starts with the first field, but as you didn't specify where it stops, ends at the end of the line, so the sort key is the full line, which is the default.



                So sort -t, -k1 -n is exactly the same as sort -n. With , ignored, you're sorting on these numbers:



                0
                1
                2
                3
                4
                5
                61.4433853830416671
                7
                8
                9
                10
                110.5923834706792905
                120.8657741917554445
                13
                140.78768021182158


                Here, you want:



                sort -t, -n -k1,1


                To sort on the first , delimited field only.



                You can also use sort -n in the C locale where , is neither the decimal radix nor the thousand separator (and . is the decimal radix):



                LC_ALL=C sort -n






                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited 13 mins ago

























                answered 1 hour ago









                Stéphane ChazelasStéphane Chazelas

                314k57595953




                314k57595953




















                    user347221 is a new contributor. Be nice, and check out our Code of Conduct.









                    draft saved

                    draft discarded


















                    user347221 is a new contributor. Be nice, and check out our Code of Conduct.












                    user347221 is a new contributor. Be nice, and check out our Code of Conduct.











                    user347221 is a new contributor. Be nice, and check out our Code of Conduct.














                    Thanks for contributing an answer to Unix & Linux Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f512596%2fsorting-numerically%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Bett Inhaltsverzeichnis Geschichte | Bettformen | Bettgrößen | Andere Bezeichnungen | Bettenmangel | Betten in der bildenden Kunst | Schlafmedizinische Gesichtspunkte | Siehe auch | Literatur | Weblinks | Einzelnachweise | NavigationsmenüBett, Bettstatt, BettstelleCommons: BettBabybetten: Anwendung, Ausstattungsmerkmale und VergleichskriterienWasserbetten. Vorurteile im TestHapfnNursch10.1007/s11818-012-0584-74006250-8AKS4329276-8

                    Luksemburg Sisukord Nimi | Asend | Loodus | Riigikord | Haldusjaotus | Rahvastik | Riigikaitse | Majandus | Taristu | Ajalugu | Eesti ja Luksemburgi suhted | Haridus | Kultuur | Vaata ka | Viited | Välislingid | Navigeerimismenüü50° N, 6° EÜlevaade Luksemburgi kaitsealadest.Luksemburgi rahvaarv. Statistikaamet.World Bank'i andmebaasÜlevaade Luksemburgi loodusest.Ülevaade Luksemburgi metsadest.Guy Colling. "Red List of the Vascular Plants of Luxembourg." Travaux scientifiques du Musée national d’histoire naturelle Luxembourg. 2005.Luxembourg’s biodiversity at risk.Maailma kahepaiksete andmebaas.Denis Lepage. "Luxembourg." Avibase.Ülevaade temperatuuridest. Luksemburgi meteoroloogiateenistus.Ülevaade Luksemburgist. Euroopa Liidu esinduse koduleht.Système politique. TerritoireÜlevaade Luksemburgi rahvastikust. Luksemburgi statistikaamet.Luksemburgi rahvastik. Luksemburgi statistikaamet.The World FactbookMonique Borsenberger, Paul Dickes. "Religions au Luxembourg. Quelle évolution entre 1999-2008". Luksemburgi statistikaamet. 2011.Luksemburgi peapiiskopkond. Catholic-Hierarchy.Luksemburgi armee koduleht.Luksemburgi armee relvastus.Eesti Välisministeerium.Luksemburgi rahvastik. Luksemburgi statistikaamet.Luksemburgi Eesti Seltsi koduleht.Helen Eelrand. "Raadio, mis muutis maailma." Eesti Päevaleht. 13. märts 2004.Ülevaade Luksemburgi haridussüsteemist.Ülevaade Luksemburgi keskkoolidest.Luksemburgr

                    Valle di Casies Indice Geografia fisica | Origini del nome | Storia | Società | Amministrazione | Sport | Note | Bibliografia | Voci correlate | Altri progetti | Collegamenti esterni | Menu di navigazione46°46′N 12°11′E / 46.766667°N 12.183333°E46.766667; 12.183333 (Valle di Casies)46°46′N 12°11′E / 46.766667°N 12.183333°E46.766667; 12.183333 (Valle di Casies)Sito istituzionaleAstat Censimento della popolazione 2011 - Determinazione della consistenza dei tre gruppi linguistici della Provincia Autonoma di Bolzano-Alto Adige - giugno 2012Numeri e fattiValle di CasiesDato IstatTabella dei gradi/giorno dei Comuni italiani raggruppati per Regione e Provincia26 agosto 1993, n. 412Heraldry of the World: GsiesStatistiche I.StatValCasies.comWikimedia CommonsWikimedia CommonsValle di CasiesSito ufficialeValle di CasiesMM14870458910042978-6