Читать кодировку символов с помощью 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
,