How can I order files in a directory by their true numeric order.
file1.txt
file2.txt
file11.txt
...
I think it\'s called : Natural Order
For this particular list of files, sort numerically starting at the fifth character of the first field.
$ ls file*|sort -k1.5n
file1
file2
file11
file12
If all filenames are fileSOMENUMBER.txt
, try this:
ls -1|sed 's:^[^0-9]*\([0-9]*\).*$:\1:g'|sort -n|sed 's:^\(.*\)$:file\1.txt:g'
Use the -v
option:
ls -v file*
file1
file2
file11
file12
Another option may be using sort -V
, assuming that one is available on your platform:
ls file* |sort -V