How to sort the output of `ls`?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
9
down vote

favorite
1












Is it possible to view this output sorted with titlepage_1.pdf before titlepage_19.pdf?



$ ls
allTitlepage.pdf titlepage_12.pdf titlepage_19.tex titlepage_26.pdf titlepage_32.tex titlepage_4.tex
allTitlepage.tex titlepage_12.tex titlepage_1.pdf titlepage_26.tex titlepage_33.pdf titlepage_5.pdf
assignment.pdf titlepage_13.pdf titlepage_1.tex titlepage_27.pdf titlepage_34.pdf titlepage_5.tex
assignment.tex titlepage_13.tex titlepage_20.pdf titlepage_27.tex titlepage_34.tex titlepage_6.pdf
graphicsAssignment2.pdf titlepage_14.pdf titlepage_20.tex titlepage_28.pdf titlepage_35.pdf titlepage_6.tex
graphicsAssignment2.tex titlepage_14.tex titlepage_21.pdf titlepage_28.tex titlepage_35.tex titlepage_7.pdf
README.md titlepage_15.pdf titlepage_21.tex titlepage_29.pdf titlepage_36.pdf titlepage_7.tex
thesisTitlepage.pdf titlepage_15.tex titlepage_22.pdf titlepage_29.tex titlepage_36.tex titlepage_8.pdf
thesisTitlepage.tex titlepage_16.pdf titlepage_22.tex titlepage_2.pdf titlepage_37.pdf titlepage_8.tex
titlepage_0.pdf titlepage_16.tex titlepage_23.pdf titlepage_2.tex titlepage_37.tex titlepage_9.pdf
titlepage_0.tex titlepage_17.pdf titlepage_23.tex titlepage_30.pdf titlepage_38.pdf titlepage_9.tex
titlepage_10.pdf titlepage_17.tex titlepage_24.pdf titlepage_30.tex titlepage_38.tex titlepage_one.pdf
titlepage_10.tex titlepage_18.pdf titlepage_24.tex titlepage_31.pdf titlepage_3.pdf titlepage_one.tex
titlepage_11.pdf titlepage_18.tex titlepage_25.pdf titlepage_31.tex titlepage_3.tex titlepage_two.tex
titlepage_11.tex titlepage_19.pdf titlepage_25.tex titlepage_32.pdf titlepage_4.pdf









share|improve this question























  • The title ought to be more specific as it looks like a duplicate (which it might be anyway).
    – Peter Mortensen
    2 hours ago















up vote
9
down vote

favorite
1












Is it possible to view this output sorted with titlepage_1.pdf before titlepage_19.pdf?



$ ls
allTitlepage.pdf titlepage_12.pdf titlepage_19.tex titlepage_26.pdf titlepage_32.tex titlepage_4.tex
allTitlepage.tex titlepage_12.tex titlepage_1.pdf titlepage_26.tex titlepage_33.pdf titlepage_5.pdf
assignment.pdf titlepage_13.pdf titlepage_1.tex titlepage_27.pdf titlepage_34.pdf titlepage_5.tex
assignment.tex titlepage_13.tex titlepage_20.pdf titlepage_27.tex titlepage_34.tex titlepage_6.pdf
graphicsAssignment2.pdf titlepage_14.pdf titlepage_20.tex titlepage_28.pdf titlepage_35.pdf titlepage_6.tex
graphicsAssignment2.tex titlepage_14.tex titlepage_21.pdf titlepage_28.tex titlepage_35.tex titlepage_7.pdf
README.md titlepage_15.pdf titlepage_21.tex titlepage_29.pdf titlepage_36.pdf titlepage_7.tex
thesisTitlepage.pdf titlepage_15.tex titlepage_22.pdf titlepage_29.tex titlepage_36.tex titlepage_8.pdf
thesisTitlepage.tex titlepage_16.pdf titlepage_22.tex titlepage_2.pdf titlepage_37.pdf titlepage_8.tex
titlepage_0.pdf titlepage_16.tex titlepage_23.pdf titlepage_2.tex titlepage_37.tex titlepage_9.pdf
titlepage_0.tex titlepage_17.pdf titlepage_23.tex titlepage_30.pdf titlepage_38.pdf titlepage_9.tex
titlepage_10.pdf titlepage_17.tex titlepage_24.pdf titlepage_30.tex titlepage_38.tex titlepage_one.pdf
titlepage_10.tex titlepage_18.pdf titlepage_24.tex titlepage_31.pdf titlepage_3.pdf titlepage_one.tex
titlepage_11.pdf titlepage_18.tex titlepage_25.pdf titlepage_31.tex titlepage_3.tex titlepage_two.tex
titlepage_11.tex titlepage_19.pdf titlepage_25.tex titlepage_32.pdf titlepage_4.pdf









share|improve this question























  • The title ought to be more specific as it looks like a duplicate (which it might be anyway).
    – Peter Mortensen
    2 hours ago













up vote
9
down vote

favorite
1









up vote
9
down vote

favorite
1






1





Is it possible to view this output sorted with titlepage_1.pdf before titlepage_19.pdf?



$ ls
allTitlepage.pdf titlepage_12.pdf titlepage_19.tex titlepage_26.pdf titlepage_32.tex titlepage_4.tex
allTitlepage.tex titlepage_12.tex titlepage_1.pdf titlepage_26.tex titlepage_33.pdf titlepage_5.pdf
assignment.pdf titlepage_13.pdf titlepage_1.tex titlepage_27.pdf titlepage_34.pdf titlepage_5.tex
assignment.tex titlepage_13.tex titlepage_20.pdf titlepage_27.tex titlepage_34.tex titlepage_6.pdf
graphicsAssignment2.pdf titlepage_14.pdf titlepage_20.tex titlepage_28.pdf titlepage_35.pdf titlepage_6.tex
graphicsAssignment2.tex titlepage_14.tex titlepage_21.pdf titlepage_28.tex titlepage_35.tex titlepage_7.pdf
README.md titlepage_15.pdf titlepage_21.tex titlepage_29.pdf titlepage_36.pdf titlepage_7.tex
thesisTitlepage.pdf titlepage_15.tex titlepage_22.pdf titlepage_29.tex titlepage_36.tex titlepage_8.pdf
thesisTitlepage.tex titlepage_16.pdf titlepage_22.tex titlepage_2.pdf titlepage_37.pdf titlepage_8.tex
titlepage_0.pdf titlepage_16.tex titlepage_23.pdf titlepage_2.tex titlepage_37.tex titlepage_9.pdf
titlepage_0.tex titlepage_17.pdf titlepage_23.tex titlepage_30.pdf titlepage_38.pdf titlepage_9.tex
titlepage_10.pdf titlepage_17.tex titlepage_24.pdf titlepage_30.tex titlepage_38.tex titlepage_one.pdf
titlepage_10.tex titlepage_18.pdf titlepage_24.tex titlepage_31.pdf titlepage_3.pdf titlepage_one.tex
titlepage_11.pdf titlepage_18.tex titlepage_25.pdf titlepage_31.tex titlepage_3.tex titlepage_two.tex
titlepage_11.tex titlepage_19.pdf titlepage_25.tex titlepage_32.pdf titlepage_4.pdf









share|improve this question















Is it possible to view this output sorted with titlepage_1.pdf before titlepage_19.pdf?



$ ls
allTitlepage.pdf titlepage_12.pdf titlepage_19.tex titlepage_26.pdf titlepage_32.tex titlepage_4.tex
allTitlepage.tex titlepage_12.tex titlepage_1.pdf titlepage_26.tex titlepage_33.pdf titlepage_5.pdf
assignment.pdf titlepage_13.pdf titlepage_1.tex titlepage_27.pdf titlepage_34.pdf titlepage_5.tex
assignment.tex titlepage_13.tex titlepage_20.pdf titlepage_27.tex titlepage_34.tex titlepage_6.pdf
graphicsAssignment2.pdf titlepage_14.pdf titlepage_20.tex titlepage_28.pdf titlepage_35.pdf titlepage_6.tex
graphicsAssignment2.tex titlepage_14.tex titlepage_21.pdf titlepage_28.tex titlepage_35.tex titlepage_7.pdf
README.md titlepage_15.pdf titlepage_21.tex titlepage_29.pdf titlepage_36.pdf titlepage_7.tex
thesisTitlepage.pdf titlepage_15.tex titlepage_22.pdf titlepage_29.tex titlepage_36.tex titlepage_8.pdf
thesisTitlepage.tex titlepage_16.pdf titlepage_22.tex titlepage_2.pdf titlepage_37.pdf titlepage_8.tex
titlepage_0.pdf titlepage_16.tex titlepage_23.pdf titlepage_2.tex titlepage_37.tex titlepage_9.pdf
titlepage_0.tex titlepage_17.pdf titlepage_23.tex titlepage_30.pdf titlepage_38.pdf titlepage_9.tex
titlepage_10.pdf titlepage_17.tex titlepage_24.pdf titlepage_30.tex titlepage_38.tex titlepage_one.pdf
titlepage_10.tex titlepage_18.pdf titlepage_24.tex titlepage_31.pdf titlepage_3.pdf titlepage_one.tex
titlepage_11.pdf titlepage_18.tex titlepage_25.pdf titlepage_31.tex titlepage_3.tex titlepage_two.tex
titlepage_11.tex titlepage_19.pdf titlepage_25.tex titlepage_32.pdf titlepage_4.pdf






command-line ls






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited yesterday









muru

131k19277473




131k19277473










asked yesterday









alhelal

6072626




6072626











  • The title ought to be more specific as it looks like a duplicate (which it might be anyway).
    – Peter Mortensen
    2 hours ago

















  • The title ought to be more specific as it looks like a duplicate (which it might be anyway).
    – Peter Mortensen
    2 hours ago
















The title ought to be more specific as it looks like a duplicate (which it might be anyway).
– Peter Mortensen
2 hours ago





The title ought to be more specific as it looks like a duplicate (which it might be anyway).
– Peter Mortensen
2 hours ago











3 Answers
3






active

oldest

votes

















up vote
23
down vote



accepted










Use the switch -v [natural sort of (version) numbers within text]



ls -v





share|improve this answer





























    up vote
    10
    down vote













    The output is sorted. According to the ls manpage:




    Sort entries alphabetically if none of -cftuvSUX nor --sort is
    specified.




    But if you want to go further, you have at least two options:



    Option 1 - ls sort switches



    man ls tells you about a number of switches you can use to sort, specifically, the ls man page says:




    none (-U), size (-S), time (-t), version (-v), extension (-X)




    In your case, you want "version" sort (-v). Be careful, though, since this will also sort anything that has a blahblah-X.Y.Z-A arrangement which may not be entirely what you want. See also GNU's explanation of version sort.



    Option 2 - Pipes to sorting commands



    You could use a pipe | to send the output to another command, for example the command sort which you could use to sort in a number of other ways, as in ls -1 | sort -n which is useful if you have numbered files. The -1 switch ensures that the output is one-line-per-file.



    Equally, you can manipulate the output to aid with sorting by using things like sed or awk.



    There are plenty of ways to answer this sort of* question. You may find a linux shell tutorial helpful.



    *(See what I did there? :-p)






    share|improve this answer





























      up vote
      5
      down vote













      As already pointed out in a comment, the output is already sorted, but by characters, not numbers.
      You may want to pipe the output of ls through sort which has a switch to sort by numbers within strings:



      ls | sort --version-sort


      From the manpage:




      -V, --version-sort
      natural sort of (version) numbers within text



      Downside: When we issue ls then it outputs the files in a table with as many columns as fit on the current screen (just like you showed in your post). But when ls notices that its output is redirected to a file or to a pipe (as in ls | sort) then ls prints the files in just one column because it then assumes the output is to be processed line-by-line (aka file-by-file) by some other program (like sort). So the output of ls | sort -V will be in one column instead of in a table with multiple columns. See @vijay's simple but perfect answer for how to avoid that.






      share|improve this answer


















      • 1




        You could also pipe the output to column
        – David Conrad
        yesterday










      Your Answer







      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "89"
      ;
      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',
      convertImagesToLinks: true,
      noModals: false,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );













       

      draft saved


      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1081689%2fhow-to-sort-the-output-of-ls%23new-answer', 'question_page');

      );

      Post as a guest






























      3 Answers
      3






      active

      oldest

      votes








      3 Answers
      3






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes








      up vote
      23
      down vote



      accepted










      Use the switch -v [natural sort of (version) numbers within text]



      ls -v





      share|improve this answer


























        up vote
        23
        down vote



        accepted










        Use the switch -v [natural sort of (version) numbers within text]



        ls -v





        share|improve this answer
























          up vote
          23
          down vote



          accepted







          up vote
          23
          down vote



          accepted






          Use the switch -v [natural sort of (version) numbers within text]



          ls -v





          share|improve this answer














          Use the switch -v [natural sort of (version) numbers within text]



          ls -v






          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited yesterday

























          answered yesterday









          Vijay

          497314




          497314






















              up vote
              10
              down vote













              The output is sorted. According to the ls manpage:




              Sort entries alphabetically if none of -cftuvSUX nor --sort is
              specified.




              But if you want to go further, you have at least two options:



              Option 1 - ls sort switches



              man ls tells you about a number of switches you can use to sort, specifically, the ls man page says:




              none (-U), size (-S), time (-t), version (-v), extension (-X)




              In your case, you want "version" sort (-v). Be careful, though, since this will also sort anything that has a blahblah-X.Y.Z-A arrangement which may not be entirely what you want. See also GNU's explanation of version sort.



              Option 2 - Pipes to sorting commands



              You could use a pipe | to send the output to another command, for example the command sort which you could use to sort in a number of other ways, as in ls -1 | sort -n which is useful if you have numbered files. The -1 switch ensures that the output is one-line-per-file.



              Equally, you can manipulate the output to aid with sorting by using things like sed or awk.



              There are plenty of ways to answer this sort of* question. You may find a linux shell tutorial helpful.



              *(See what I did there? :-p)






              share|improve this answer


























                up vote
                10
                down vote













                The output is sorted. According to the ls manpage:




                Sort entries alphabetically if none of -cftuvSUX nor --sort is
                specified.




                But if you want to go further, you have at least two options:



                Option 1 - ls sort switches



                man ls tells you about a number of switches you can use to sort, specifically, the ls man page says:




                none (-U), size (-S), time (-t), version (-v), extension (-X)




                In your case, you want "version" sort (-v). Be careful, though, since this will also sort anything that has a blahblah-X.Y.Z-A arrangement which may not be entirely what you want. See also GNU's explanation of version sort.



                Option 2 - Pipes to sorting commands



                You could use a pipe | to send the output to another command, for example the command sort which you could use to sort in a number of other ways, as in ls -1 | sort -n which is useful if you have numbered files. The -1 switch ensures that the output is one-line-per-file.



                Equally, you can manipulate the output to aid with sorting by using things like sed or awk.



                There are plenty of ways to answer this sort of* question. You may find a linux shell tutorial helpful.



                *(See what I did there? :-p)






                share|improve this answer
























                  up vote
                  10
                  down vote










                  up vote
                  10
                  down vote









                  The output is sorted. According to the ls manpage:




                  Sort entries alphabetically if none of -cftuvSUX nor --sort is
                  specified.




                  But if you want to go further, you have at least two options:



                  Option 1 - ls sort switches



                  man ls tells you about a number of switches you can use to sort, specifically, the ls man page says:




                  none (-U), size (-S), time (-t), version (-v), extension (-X)




                  In your case, you want "version" sort (-v). Be careful, though, since this will also sort anything that has a blahblah-X.Y.Z-A arrangement which may not be entirely what you want. See also GNU's explanation of version sort.



                  Option 2 - Pipes to sorting commands



                  You could use a pipe | to send the output to another command, for example the command sort which you could use to sort in a number of other ways, as in ls -1 | sort -n which is useful if you have numbered files. The -1 switch ensures that the output is one-line-per-file.



                  Equally, you can manipulate the output to aid with sorting by using things like sed or awk.



                  There are plenty of ways to answer this sort of* question. You may find a linux shell tutorial helpful.



                  *(See what I did there? :-p)






                  share|improve this answer














                  The output is sorted. According to the ls manpage:




                  Sort entries alphabetically if none of -cftuvSUX nor --sort is
                  specified.




                  But if you want to go further, you have at least two options:



                  Option 1 - ls sort switches



                  man ls tells you about a number of switches you can use to sort, specifically, the ls man page says:




                  none (-U), size (-S), time (-t), version (-v), extension (-X)




                  In your case, you want "version" sort (-v). Be careful, though, since this will also sort anything that has a blahblah-X.Y.Z-A arrangement which may not be entirely what you want. See also GNU's explanation of version sort.



                  Option 2 - Pipes to sorting commands



                  You could use a pipe | to send the output to another command, for example the command sort which you could use to sort in a number of other ways, as in ls -1 | sort -n which is useful if you have numbered files. The -1 switch ensures that the output is one-line-per-file.



                  Equally, you can manipulate the output to aid with sorting by using things like sed or awk.



                  There are plenty of ways to answer this sort of* question. You may find a linux shell tutorial helpful.



                  *(See what I did there? :-p)







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited yesterday

























                  answered yesterday









                  tudor

                  1,39821441




                  1,39821441




















                      up vote
                      5
                      down vote













                      As already pointed out in a comment, the output is already sorted, but by characters, not numbers.
                      You may want to pipe the output of ls through sort which has a switch to sort by numbers within strings:



                      ls | sort --version-sort


                      From the manpage:




                      -V, --version-sort
                      natural sort of (version) numbers within text



                      Downside: When we issue ls then it outputs the files in a table with as many columns as fit on the current screen (just like you showed in your post). But when ls notices that its output is redirected to a file or to a pipe (as in ls | sort) then ls prints the files in just one column because it then assumes the output is to be processed line-by-line (aka file-by-file) by some other program (like sort). So the output of ls | sort -V will be in one column instead of in a table with multiple columns. See @vijay's simple but perfect answer for how to avoid that.






                      share|improve this answer


















                      • 1




                        You could also pipe the output to column
                        – David Conrad
                        yesterday














                      up vote
                      5
                      down vote













                      As already pointed out in a comment, the output is already sorted, but by characters, not numbers.
                      You may want to pipe the output of ls through sort which has a switch to sort by numbers within strings:



                      ls | sort --version-sort


                      From the manpage:




                      -V, --version-sort
                      natural sort of (version) numbers within text



                      Downside: When we issue ls then it outputs the files in a table with as many columns as fit on the current screen (just like you showed in your post). But when ls notices that its output is redirected to a file or to a pipe (as in ls | sort) then ls prints the files in just one column because it then assumes the output is to be processed line-by-line (aka file-by-file) by some other program (like sort). So the output of ls | sort -V will be in one column instead of in a table with multiple columns. See @vijay's simple but perfect answer for how to avoid that.






                      share|improve this answer


















                      • 1




                        You could also pipe the output to column
                        – David Conrad
                        yesterday












                      up vote
                      5
                      down vote










                      up vote
                      5
                      down vote









                      As already pointed out in a comment, the output is already sorted, but by characters, not numbers.
                      You may want to pipe the output of ls through sort which has a switch to sort by numbers within strings:



                      ls | sort --version-sort


                      From the manpage:




                      -V, --version-sort
                      natural sort of (version) numbers within text



                      Downside: When we issue ls then it outputs the files in a table with as many columns as fit on the current screen (just like you showed in your post). But when ls notices that its output is redirected to a file or to a pipe (as in ls | sort) then ls prints the files in just one column because it then assumes the output is to be processed line-by-line (aka file-by-file) by some other program (like sort). So the output of ls | sort -V will be in one column instead of in a table with multiple columns. See @vijay's simple but perfect answer for how to avoid that.






                      share|improve this answer














                      As already pointed out in a comment, the output is already sorted, but by characters, not numbers.
                      You may want to pipe the output of ls through sort which has a switch to sort by numbers within strings:



                      ls | sort --version-sort


                      From the manpage:




                      -V, --version-sort
                      natural sort of (version) numbers within text



                      Downside: When we issue ls then it outputs the files in a table with as many columns as fit on the current screen (just like you showed in your post). But when ls notices that its output is redirected to a file or to a pipe (as in ls | sort) then ls prints the files in just one column because it then assumes the output is to be processed line-by-line (aka file-by-file) by some other program (like sort). So the output of ls | sort -V will be in one column instead of in a table with multiple columns. See @vijay's simple but perfect answer for how to avoid that.







                      share|improve this answer














                      share|improve this answer



                      share|improve this answer








                      edited yesterday

























                      answered yesterday









                      PerlDuck

                      4,15211030




                      4,15211030







                      • 1




                        You could also pipe the output to column
                        – David Conrad
                        yesterday












                      • 1




                        You could also pipe the output to column
                        – David Conrad
                        yesterday







                      1




                      1




                      You could also pipe the output to column
                      – David Conrad
                      yesterday




                      You could also pipe the output to column
                      – David Conrad
                      yesterday

















                       

                      draft saved


                      draft discarded















































                       


                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1081689%2fhow-to-sort-the-output-of-ls%23new-answer', 'question_page');

                      );

                      Post as a guest













































































                      Popular posts from this blog

                      How to check contact read email or not when send email to Individual?

                      Displaying single band from multi-band raster using QGIS

                      How many registers does an x86_64 CPU actually have?