Подтвердить что ты не робот

Bash истинный порядковый номер

Как я могу упорядочить файлы в каталоге по их истинному числовому порядку.

file1.txt
file2.txt
file11.txt
...

Я думаю, что это называется: Natural Order

4b9b3361

Ответ 1

Используйте параметр -v:

ls -v file*
file1
file2
file11
file12

Другим вариантом может быть использование sort -V, если предположить, что он доступен на вашей платформе:

ls file* |sort -V

Ответ 2

Для этого конкретного списка файлов сортируйте численно начиная с пятого символа первого поля.

$ ls file*|sort -k1.5n
file1
file2
file11
file12

Ответ 3

Если все имена файлов fileSOMENUMBER.txt, попробуйте следующее:

ls -1|sed 's:^[^0-9]*\([0-9]*\).*$:\1:g'|sort -n|sed 's:^\(.*\)$:file\1.txt:g'