按特定顺序对文件进行排序

Sort files with specific order

我有这样的文件

file_fooX_barY_tests.txt

首先在 'foo' 上循环然后查看 'bar' 之后的数字后,我如何才能增量列出它们?即

file_foo100_bar1_test.txt
file_foo100_bar100_test.txt
file_foo100_bar150_test.txt
file_foo200_bar1_test.txt
file_foo200_bar100_test.txt
file_foo200_bar250_test.txt

做一个标准的 ls,例如列表

file_foo100_bar100_test.txt
file_foo100_bar150_test.txt
file_foo100_bar1_test.txt

所以,'bar100' 和 'bar150' 排在 'bar1'

之前

谢谢

我认为 sort -V 可以解决问题。它意味着按 "version order".

排序

Example :

$ echo """file_foo100_bar150_test.txt
file_foo100_bar1_test.txt
file_foo200_bar250_test.txt
file_foo200_bar100_test.txt
file_foo200_bar1_test.txt
file_foo100_bar100_test.txt
""" | sort -V

file_foo100_bar1_test.txt
file_foo100_bar100_test.txt
file_foo100_bar150_test.txt
file_foo200_bar1_test.txt
file_foo200_bar100_test.txt
file_foo200_bar250_test.txt