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
Advertisement
Answer
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