среда, 19 декабря 2012 г.

Псевдослучайная сортировка файлов

Иногда приходится использовать девайсы для проигрывания музыки, не способные проигрывать файлы в случайном порядке. Часто этим грешат различные FM-модуляторы.
Имея один такой в машине, а также имея огромное количество mp3-файлов к проигрыванию, столкнулся с очень острой необходимостью воспроизводить эти файлы чуточку в случайном порядке.
Как правило, модуляторы воспроизводят файлы в порядке, зависящем от названия файла. Меняем случайным образом имя файла - меняем порядок воспроизведения.


В моем случае я просто копирую мои файлы на карту памяти попутно меняя их имя следующим образом:
for fname in *.mp3
do
   cp "$fname" /path/to/card/$(echo "$fname" | sha1sum | cut -f1 -d' ').mp3
done
А если модулятор ориентируется так же на ID3-теги? Можно удалить и их.
Для этого на Ubuntu я использовал следующее:
  1. Устанавливаю  libid3-3.8.3-dev:
    apt-get install libid3-3.8.3-dev
  2. Выполняю очистку ID3-тегов:
    find . -type f -iname '*.mp3' -exec id3convert -s {} \;