使用 sed 读取字符编码

使用 sed 读取字符编码

我正在尝试编写一个 bash 脚本,将文件内的所有特殊字符(é、ü、ã 等)转换为 latex 格式(\'e、\"u、\~a 等)。通常,这些事情用 很容易做到sed,但我无法让 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

相关内容