Как конвертировать несколько ISO8859-1 в UTF-8

Пытаюсь преобразовать несколько файлов SQL из ISO8859-1 в UTF-8.

Выполняю следующую команду:

iconv -f ISO_8859-1 -t UTF-8 *.sql

. вывод их контента на терминал очень длинный и после окончания вывода они не конвертируются. Они остаются такими же. Я хотел бы иметь возможность конвертировать и не видеть вывод.

6
задан 10 May 2011 в 04:05

2 ответа

iconv по умолчанию отправляет свой вывод на стандартный вывод, что объясняет поведение того, что вы видели. Вы можете направить вывод в файл, используя опцию -o, но это сгенерирует только один выходной файл и, вероятно, не поможет вам обновить файлы на месте. Возможно, попробуйте что-то вроде этого:

for file in *.sql; do
    iconv -f ISO-8859-1 -t UTF-8 -o "$file".utf "$file" && mv "$file".utf "$file"
done

, который преобразует каждый файл и сохраняет результат во временном файле, перемещая его в исходное имя файла, если преобразование прошло успешно.

0
ответ дан 10 May 2011 в 04:05

Также возможно использовать rsync для этой задачи, с одним преимуществом, вы будете хранить резервную копию. Если один из преобразованных файлов уже находится в целевой кодификации, вы испортите его.

rsync -va --iconv=iso88591,utf8 /source/latin1/ /destination/utf8/
0
ответ дан 10 May 2011 в 04:05

Другие вопросы по тегам:

Похожие вопросы: