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

Написал admin . Опубликовано в Mac OS X, Unix просмотров 1 385

Так себеПойдетХорошоПонравилосьОтличный пост (No Ratings Yet)
Загрузка...

Перед пользователем, переходящим с 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 на имя каталога в который переходить (не забывайте, что имя с пробелами и некоторыми другими символами лучше всего заключать в двойные или даже одинарные кавычки)

Похожие статьи:

Метки: , , , , ,

Trackback from your site.

Comments (1)

  • Александр Сергеевич Пушкин

    |

    Спасибо. Полезно.

    Reply

Leave a comment