sort -nt '_' -k2
Выход:
file_0 file_1 file_2 file_3 file_4 file_5 file_6 file_7 file_8 file_9 file_10 file_11 file_12 file_13 file_14 file_15
или:
file_0.txt file_1.txt file_2.txt file_3.txt file_4.txt file_5.txt file_6.txt file_7.txt file_8.txt file_9.txt file_10.txt file_11.txt file_12.txt file_13.txt file_14.txt file_15.txt
Протестировано с реализациями FreeBSD и GNU coreutils
sort
, но не будет работать с реализациейbusybox
. Все используемые варианты указано POSIX .
glob
также работает с относительными путями, так что вы можете просто использовать pdb/*.pdb
и он будет работать--glob
будет возвращать результаты относительно вашего текущего каталога:
>>> glob.glob('test/*.txt')
['test/c.txt', 'test/b.txt', 'test/a.txt']
И если вам нужен результат без каталога, вы всегда можете использовать os.path.basename
, чтобы получить только имя файла:
>>> [os.path.basename(p) for p in glob.glob('test/*.txt')]
['c.txt', 'b.txt', 'a.txt']