我正在尝试根据文件名对一些文件(不是里面的内容)进行排序
我已经尝试过 ls -v 但仅根据数字对文件进行排序 例如,我正在尝试排序
abc.adult.fasta
abc.1.1.fasta
abc.14.3.fasta
abc.3.2.fasta
数字是动物的年龄,因此成年动物应该排在最后。
ls -v
结果应该首先基于它们的实际数值,然后基于字母顺序。作为列表
abc.1.1.fasta
abc.3.2.fasta
abc.14.3.fasta
abc.adult.fasta
最佳答案
一位数前面有一个零,排序很容易。 这可以使用 sed 来完成。
ls | sed -E 's/\.([0-9])\./\.0\1\./g' | sort | sed -E 's/\.0([0-9])\./\.\1\./g'
第一个 sed 在一位数前面添加一个零,而第二个将其删除。
关于linux - 根据文件名对文件进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54694941/