Решил написать скриптик, столкнулся с плохой ситуацией. Роль скрипта перекодировка тегов mp3 файлов в UTF-8.
$ cat /usr/bin/mp3convert
#!/bin/bash
for file in *
do
/usr/local/mp3unicode/bin/mp3unicode -s cp1251 --id3v2-encoding unicode $file
done
Все бы ничего, если бы некоторые файлы не содержали пробелы, например:
$ ls
01 Sila Uma.mp3 04 Inostr.mp3 07 Вечный символ страха.mp3 10 Get Down.mp3 13 Синяя тема.mp3
02 Джедаи.mp3 05 Кому ты веришь.mp3 08 Вот так я развлекаюсь.mp3 11 Школьнички.mp3
03 Новый порядок.mp3 06 Риальная тема.mp3 09 Золотой гвоздь программы.mp3 12 С другими.mp3
При попытке выполнить mp3convert:
$ mp3convert
Error: Cannot open file: 01.
Error: Cannot open file: 02.
Error: Cannot open file: 03.
Error: Cannot open file: 04.
Error: Cannot open file: 05.
Error: Cannot open file: 06.
Error: Cannot open file: 07.
Error: Cannot open file: 08.
Error: Cannot open file: 09.
Error: Cannot open file: 10.
Error: Cannot open file: 11.
Error: Cannot open file: 12.
Error: Cannot open file: 13.
Как я пологаю вариантов может быть два:
1) Каким-то флагом в ls заставлять выводить пробелы в названиях файлов экранированными.
2) Заменять в скрипте пробел на экранированный пробел.
Но вопрос как? С утра, что-то не очень хорошо голова работает.