用bash对文件进行数字排序
我需要对.flv文件进行数字排序,并且能够使用以下命令执行此操作:
ls *\.flv | sort --version-sort -f
但是有很多文件(数百个),因此无法正确排序。
ls *\.flv | sort --version-sort -f | tail -n 20e680.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 | sort --version-sort -f | tail -n 20e680.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 | sort --version-sort -f | grep "flv" ls *.flv | sort --version-sort -f
ls *\.flv | sort --version-sort -f
ls *.flv | sort -f
回答:
我会尝试以下代码。适用于我的测试场景:
ls -1 *\.flv | sort -n -k1.2
所述ls
列表上的每个线FLV文件1中,sort
需要在每行开始对第二个字符的第一(且仅一个)字(开始数)。按数字排序
以上是 用bash对文件进行数字排序 的全部内容, 来源链接: utcz.com/qa/413103.html