Настройка компьютера » Русификация
Смена кодировки у множества файлов
Перед пользователем, переходящим с Windows на Mac, порой может встать задача, невыполнимая, на первый взгляд, в разумное время. Это перекодирование большого количества текстовых файлов (Notepad, etc.) в кодировку используемую в MacOSX. Или обратно - в случае регулярного обмена файлами с Windows-пользователями.
Использование команды iconv
* Запустите Terminal
* Перейдите в каталог с файлами, которые Вы хотите преобразовать из кодировки Windows (windows-1251) в кодировку MacOSX (utf-8)
* Выполните следующую команду:
for i in *; do iconv -f windows-1251 -t utf-8 "$i" >tmp; mv tmp "$i"; done
Что можно изменить:
* вместо wildcard "*" можно указать более точное значение, скажем, "*.txt"
* если Вы хотите обратную перекодировку - поменяйте местами входную и выходную кодировки (-f utf-8 -t windows-1251)
* если вы хотите перекодировать между другими кодировками, то вот список поддерживаемых командой iconv кодировок можно получить командой iconv -l
Возможная проблема: если слишком много файлов, может не поместиться в environment (там ограничение на размер). Или куча подкаталогов, которые тоже надо обработать.
Решение:
find . -name "*.txt" | while read i; do iconv -f windows-1251 -t utf-8 "$i" >tmp; mv tmp "$i"; done
Нюансы: ищет во всех подкаталогах от текущего. Не обязательно переходить в обрабатываемый каталог - для этого достаточно будет заменить "." в параметрах find на имя каталога в который переходить (не забывайте, что имя с пробелами и некоторыми другими символами лучше всего заключать в двойные или даже одинарные кавычки)
[править]
Альтернативный инструмент - textutil
В Mac OS X начиная с версии 10.4 появилась еще одна полезная утилита - textutil
textutil позволяет:
* конвертировать документы из одного формата в другой. поддерживаемые форматы: txt, html, rtf, rtfd, doc, wordml, webarchive
* изменять кодировку для файлов текстового формата
textutil запускается из командной строки. Для пакетной обработки можно использовать, например, Automator.app
Подробнее о textutil - man textutil
Тэги: перекодировка, Terminal
Related entries:
Последние обновление: 2007-10-29 04:34
Опубликовал: Барыбин Денис Александрович
Ревизия: 1.206
Комментарии запрещены