我有一个文件夹,看起来都像这样
ASX.chr.txt
其中chr
可以是1-19,X,Y或MT的数字。
有没有办法对这些文件进行排序,我得到以下顺序?
ASX.1.txt
ASX.2.txt
ASX.3.txt
...
ASX.9.txt
ASX.10.txt
ASX.11.txt
...
ASX.19.txt
ASX.X.txt
ASX.Y.txt
ASX.MT.txt
答案 0 :(得分:0)
我喜欢@ pii_ke的perl oneliner。但是,如果你没有perl,你可以尝试这个 -
ls | sed 's/\.M/.30M/;s/\.\([XY]\)/.20\1/'|sort -t. -k2 -n|sed 's/\.[23]0/./'
(在bash中)
sed
更改X->20X
,Y->20Y
,MT->30MT
sort
按照数字顺序(.
)对第一个-t. -k2
之后和第二个-n
之前的部分进行排序。因此,X
和Y
来自19
,因为20
,MT
来自30
。{ LI>
sed
撤消了第一个效果。