Читать кодировку символов с помощью sed

Я пытаюсь написать bash-скрипт для преобразования всех специальных символов в файле (é, ü, ã и т. Д.) В латексный формат (\'e, \"u, \~a и т. Д.). Обычно это действительно легко сделать с sed, но у меня возникают проблемы с распознаванием специальных символов. Как я могу сказать команде прочитать файл, используя iso или кодировку UTF-8?

Если это невозможно, есть ли способ заставить sed понимать специальные символы?

1 ответ

Решение

Это может быть так просто, как

iconv --from-code $enc input-file |
    sed 's/é/\\'\''e/;s/ü/\\"e/;s/ã/\\~a/' |
    iconv -to-code $enc >converted-input-file

где переменная enc содержит кодировку входного файла, одну из строк, полученных из iconv -l,

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