LINUX.ORG.RU

сортировка файликов


0

0

есть папочка с кучей файлов
10__01.11.07
100__13.11.07
100__13.12.07
100__14.12.07Д
10__02.12.07
10__02.12.07Д
10__03.12.07Д
1__01.11.07
1__01.11.07Д
1__01.12.07
101__13.11.07
101__14.12.07
102__13.11.07
102__14.12.07
103__13.07.07

нужно сделать список вида
1__01.12.07
10__02.12.07
10__02.12.07Д
100__13.12.07
100__14.12.07Д
101__14.12.07
102__14.12.07
1__01.11.07
1__01.11.07Д
10__01.11.07
100__13.11.07
101__13.11.07
102__13.11.07

т.е. сортировать по дате, а затем по первой цифре (порядок буквы без разницы)
пробовал
ls | sort -g --- не учитывается дата
ls | sort -g -t. -k 2 --- почти то что надо только не совсем правильно сортируется первая цифра, т.е. идет 100,10,1,101,102,103...

anonymous

Причем главное при сортировке месяц и год. Т.е. может быть след последовательность

31__11.12.07
32__13.12.07 <----
33__12.12.07 <----
34__14.12.07
1__01.11.07
2__02.11.07
3__03.11.07
4__04.11.07

anonymous
()
Ответ на: комментарий от sdio

ls -t не катит т.к. имя файла не связано с датой создания или измения т.е. файл 13__10.12.07 может быть создан раньше чем 1__01.12.07

anonymous
()
Ответ на: комментарий от anonymous

Только здесь результат будет не гарантированный, в том плане, что если есть файлы, не содержащие в имени '__', то после сортировки sed эти строчки "испортит". Можно, для подстраховки файлы с "неправильными" именами вобще не выводить, примерно так:

ls -1 | grep '^[0-9][0-9]*__[0-9].*' | sed 's/__/\./' | sort ...

Ну или использовать sed -n 's/длинное выражение/\1\.\2/p' .

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.