linux - 在 Unix 中打印/替换 ALT 代码

标签 linux unix

我正在使用 Unix 文件服务器上的应用程序 Oracle 框架在管道分隔的文本文件中创建报告。此文件为 iso-8859-1 编码格式。但是我需要以 UTF-8 格式(我无法从 Oracle 框架生成)发送到下游,所以我使用以下命令将其转换为 UTF 格式:

iconv -f iso-8859-1 -t UTF-8//TRANSLIT $i -o $i

但要求将"|"分隔符替换为倒置感叹号字符"¡"

那么如何在 Unix 中查找和替换 "|" 字符并将其替换为 "¡"

最佳答案

倒置感叹号是 unicode U+00A1,是 ISO-8859-1 字符集的成员,八进制代码为 0xa1 或 0241。如您所知,您的输入文件是 iso-8859-1 编码的,您可以仅使用 tr 命令转换管道:

 tr '|' '\241' < infile > outfile

然后您可以使用 iconv 将输出文件从 ISO-8859-1 转换为 utf8。


演示(在 ISO-8859-1 终端上):

$ echo 'a|b' | tr '|' '\241'
a¡b
$

关于linux - 在 Unix 中打印/替换 ALT 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51493118/

相关文章:

unix - 如何从剪切命令获取倒数第二个字段

c - rdtsc() 给出奇怪的结果

linux - 我怎样才能找到所有必须列入 seccomp 白名单的系统调用?

linux - 在状态 D 中杀死 linux 进程

linux - Pintos中与线程初始化有关的线程问题

bash - 替换行之间的模式

c - 在 Linux 上从消息队列读取时出现错误 "Bad address"

linux - 在Linux终端中重命名文件

bash - 删除大型单词列表中重复项的最快方法?

c - fifo linux - write() 函数突然终止程序