I need to sort .flv files numerically and i was able to do it with the following command:
ls *\.flv | sort --version-sort -f
but with many files(hundreds) it's not sorting correctly.
ls *\.flv | sort --version-sort -f | tail -n 20
e680.flv
e681.flv
e682.flv
e683.flv
e684.flv
e685.flv
e686.flv
e687.flv
e688.flv
e689.flv
e690.flv
e691.flv
e692.flv
e693.flv
e694.flv
e695.flv
**e696.flv**
s572.flv
s602.flv
s654.flv
but the strange this is, if i'm ruining the command without "*.flv"
it's working.
i could use just ls but i have other file types in the folder.
ls | sort --version-sort -f | tail -n 20
e680.flv
e681.flv
e682.flv
e683.flv
e684.flv
e685.flv
e686.flv
e687.flv
e688.flv
e689.flv
e690.flv
e691.flv
e692.flv
e693.flv
e694.flv
e695.flv
e696.flv
what i've tried so far:
ls | sort --version-sort -f | grep "flv"
ls *.flv | sort --version-sort -f
ls *\.flv | sort --version-sort -f
ls *.flv | sort -f
How to sort by number. To sort by number pass the -n option to sort . This will sort from lowest number to highest number and write the result to standard output. Suppose a file exists with a list of items of clothing that has a number at the start of the line and needs to be sorted numerically.
Sort a File Numerically To sort a file containing numeric data, use the -n flag with the command. By default, sort will arrange the data in ascending order. If you want to sort in descending order, reverse the arrangement using the -r option along with the -n flag in the command.
the -r flag is an option of the sort command which sorts the input file in reverse order i.e. descending order by default. Example: The input file is the same as mentioned above. 3. -n Option: To sort a file numerically used –n option.
I would try following code. Works on my testing scenario:
ls -1 *\.flv | sort -n -k1.2
The ls
lists flv files 1 on each line, sort
takes first (and only one) word on each line starting on second character (start of the number). Sorts numerically
Given a folder with sequentially named files from 1.flv
to 9999.flv
ls -v1 *.flv
will output:
1.flv
2.flv
...
10.flv
...
90.flv
...
100.flv
101.flv
...
9999.flv
From the man page:
-v natural sort of (version) numbers within text
-1 list one file per line
For brevity, the two flags above can be clubbed together as -v1
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With