Рекурсивная замена кодировки файлов на OS X в Terminal
OS X — Terminal Необходимо рекурсивно пройтись папкам и для определённого типа файла изменить кодировку с WINDOWS-1251 на UTF-8. Сделал выражение с помощью for:
for files in путь_к_папке_с_файлами/.*
iconv -f WINDOWS-1251 -t UTF-8 "$files" >"$files-utf8"
Но в данном выражении необходимо после очередного выполнения менять ручками "путь_к_папке_с_файлами", что при большом количестве папок, не удобно.
Пытаюсь составить выражение с помощью find, но явно, что есть ошибка:
find путь_к_папке_с_файлами -type f -exec iconv -f WINDOWS-1251 -t UTF-8 '{}' > '{}.utf8' \;
или c уточнением типа файла:
find путь_к_папке_с_файлами -name '*.php' -exec iconv -f WINDOWS-1251 -t UTF-8 '{}' > '{}.utf8' \;
или
find путь_к_папке_с_файлами -name '*.php' -exec iconv -f WINDOWS-1251 -t UTF-8 '${} > '${}.utf8' \;
Вообщем, туплю ;) Нужна помощь, заранее благодарен!
Ответы (1 шт):
Автор решения: Sergei Kirjanov
→ Ссылка
find путь_к_папке_с_файлами -name '*.php' | perl -pe 'chomp;$_=qq[iconv -f WINDOWS-1251 -t UTF-8 "$_" >"$_-utf8"\n]'
А потом, если понравилось, допишите |sh