Нумерация скачанной музыки


romy4 аватар

romy4 - Posted on 30 Октябрь 2015

Идея в том, что вы скачиваете плейлист в правильном порядке, а потом эта неорганизованная куча файлов после команды опять стаёт в порядке плейлиста. Суть в том, что каждый файл сохраняет своё время изменения на секунду больше предыдущего. Этим надо воспользоваться.
Допустим, скачали кучу файлов из плейлиста в папку Music/new, там они сейчас в перемешку, так как имена разные. Делаем их в нужном порядке и нумеруем следующей командой (предварительно зайдя через консоль в Music/new):

ls -1rat | awk '/^[^.]/ {print $0}' | awk  '{name=sprintf("%03i - %s",NR,$0);system("mv \""$0"\" \""name"\"")}'

не сработает, если в названии есть (`) обратный апостроф

%03i - нумерация от 000 до 999, если надо 0000-9999, то ставим %04i

Ссылки в тему:

0
Ваша оценка: Ничего

можно обойтись одним awk

ls -1rat | awk '/^[^.]/{name=sprintf("%03i - %s",NR,$0);system("mv \""$0"\" \""name"\"")}'

можно с помощью rename в zsh

rename -v '$_=sprintf("%03d - %s", ++$main::i, $_)' *(Om)

*(Om) отсортирует файлы замаченые * по времени(m - modification time) в обратном порядке(O - reverse Order)

нельзя, потому что исключающий /^[^.]/ сдвинет нумерацию строк и будет два пропущенных значения для . и .. (это может быть 001,002 а может 005,010)

принято :)
а так?

ls -1rat | awk '/^[^.]/{name=sprintf("%03i - %s",++i,$0);system("mv \""$0"\" \""name"\"")}'

так всё ок

Отправить комментарий

Google Friend Connect (leave a quick comment)
loading...
Содержание этого поля является приватным и не предназначено к показу.