我有一些像这样命名的文件:
S241R39.txt
S241R40.txt
S241R41.1.txt
S241R41.2.txt
S241R42.1.txt
S241R42.2.txt
Run Code Online (Sandbox Code Playgroud)
我希望能够按此顺序对它们进行排序:
S241R39.txt
S241R40.txt
S241R41.1.txt
S241R42.1.txt
S241R41.2.txt
S241R42.2.txt
Run Code Online (Sandbox Code Playgroud)
在这里,我41.1想来之前42.1,42.1之前来41.2
在没有结束的文件中.1或者.2正确地对我的文件进行排序:
ls -1 *.txt | sort -V
有没有人有任何建议我如何调整这个给我我想要的输出?
你可以使用sort -t . -k2n -k1n:
printf '%s\n' *.txt | sort -t . -k2n -k1V
S241R39.txt
S241R40.txt
S241R41.1.txt
S241R42.1.txt
S241R41.2.txt
S241R42.2.txt
Run Code Online (Sandbox Code Playgroud)
sort 使用的命令是:
-t .:使点成为字段分隔符-k2n -k1V:使用按字段2排序(数字),字段1(版本)| 归档时间: |
|
| 查看次数: |
41 次 |
| 最近记录: |