1

У меня есть набор имен файлов, как это

vorlesung 02.11.15.mp4
vorlesung 04.01.16.mp4
vorlesung 07.12.15.mp4
vorlesung 09.11.15.mp4
vorlesung 09.12.15.mp4
...

Последняя часть имени файла - это дата в европейском формате. Теперь я пытаюсь отсортировать их по дате с помощью sort (так как awk и прочее кажется излишним). Из этого ответа я пришел к выводу, что что-то подобное должно работать.

ls *.mp4 | sort -k 2.7,2.8 -k 2.4,2.5 -k 2.1,2.3

Но в действительности только ключ 2.1,2.3 кажется, что-то делает. Когда я применяю другие отдельно, ничего не происходит. Флаг numeric-sort не помогает. Какой правильный синтаксис здесь?

1 ответ1

1

Ну ... awk не обязательно должен быть отброшен здесь. Мы можем использовать его для добавления имен файлов к выражению, по которому мы хотим сортировать, и после того, как сортировка будет выполнена, просто проигнорируем префикс.

$ cat lst
vorlesung 02.11.15.mp4
vorlesung 04.01.16.mp4
vorlesung 07.12.15.mp4
vorlesung 09.11.15.mp4
vorlesung 09.12.15.mp4
$ awk -F'[ .]' '{print $4 $2 $3, $0}' lst | sort | sed -e 's/^[0-9]* //'
vorlesung 02.11.15.mp4
vorlesung 07.12.15.mp4
vorlesung 09.11.15.mp4
vorlesung 09.12.15.mp4
vorlesung 04.01.16.mp4

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .