Настройка компьютера » Русификация

ID #1075

Смена кодировки у множества файлов

Перед пользователем, переходящим с 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

Digg it! Отправить на печать Отправить другу Скомпилировать PDF файл
Пожалуйста оцените этот ответ:

Рейтинг ответа: 4.8 из 5 (5 Голосов )

Так себе 1 2 3 4 5 Очень
сильно помог

Комментарии запрещены