用bash对文件进行数字排序

我需要对.flv文件进行数字排序,并且能够使用以下命令执行此操作:

ls *\.flv | sort --version-sort -f

但是有很多文件(数百个),因此无法正确排序。

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

但是奇怪的是,如果我在"*.flv"不起作用的情况下破坏了该命令。 我可以只使用ls,但文件夹中还有其他文件类型。

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

到目前为止我尝试过的是:

    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

回到顶部