Создать список файлов в порядке возрастания имени файла

Создать список файлов в порядке возрастания имени файла

Мне нужно создать список файлов, который отображает имя файла в порядке возрастания. Мое имя файла имеет шаблон файла: FILE.YYYYMMDD.XXX

Например:

$ ls -ltr
-rwxr-xr-x. 1 honle 1036 Apr 14  2020 FILE.20200102.001
-rwxr-xr-x. 1 honle 426832 Apr 14  2020 FILE.20200102.002
-rwxr-xr-x. 1 honle 426832 Apr 14  2020 FILE.20200102.003
-rwxr-xr-x. 1 honle 426832 Apr 10  2020 FILE.20200110.001
-rw-r--r--. 1 honle 426832 Apr 14 22:50 FILE.20200220.001
-rwxr-xr-x. 1 honle 1036 Apr 15 16:30 FILE.20200110.001

Отмечено для ввода, почему FILE.20200120.002 перед FILE.20200220.001. FILE.20200120.002 был обработан и попал в текущий каталог перед FILE.20200220.001. Вот почему мне нужно отсортировать его на основе шаблона имени файла YYYYMMDD.XXX.

Желаемый результат:

FILE.20200102.001
FILE.20200102.002
FILE.20200102.003
FILE.20200110.001
FILE.20200120.002
FILE.20200220.001

Файл времени был создан не в порядке, поэтому я не могу использовать ls -ltr. Есть идеи, как их отсортировать? Я использую Linux.

Спасибо

решение1

Если проблема заключается в том, чтобы получить имена файлов в одном столбце, а не в многостолбцовом формате, который lsполучается, то вы можете использовать -1 опцию («минус один») для ls:

ls -1

Имена файлов будут отсортированы по имени.


printf '%s\n' FILE.*

Предполагая, что шаблон FILE.*соответствует всем соответствующим именам файлов и ничему другому, приведенная выше команда также выведет имена файлов в лексикографическом порядке, каждое на отдельной строке, что, по-видимому, является тем, что вам нужно.

Связанный контент