排序数字文件在bash [英] Sort files numerically in bash
问题描述
我需要数字排序。FLV文件,我能够用下面的命令来做到这一点:
LS * \\ FLV |排序--version排序-f
但有很多文件(数百)这不是正确排序
LS * \\ FLV |排序--version排序-f |尾-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
但奇怪的是这样的,如果我搞坏了命令而不*。FLV
它的工作。
的我可以只使用LS但我的文件夹中的其他文件类型。的
LS |排序--version排序-f |尾-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
我试过到目前为止:
LS |排序--version排序-f | grep的FLV
LS *。FLV |排序--version排序-f
。LS * \\ FLV |排序--version排序-f
LS *。FLV |排序-f
我会尝试以下code。作品在我的测试场景:
LS -1 * \\ FLV。|排序-n -k1.2
的 LS
列出每行flv文件1,排序
负责在每个第一个(也是唯一一个)字行第二个字符开始(数量开始)。排序数字
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
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
这篇关于排序数字文件在bash的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!