我正在尝试编写一个 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
。