Ibm midrange 在QShell AS/400(iSeries)中表示字节

Ibm midrange 在QShell AS/400(iSeries)中表示字节,ibm-midrange,qshell,Ibm Midrange,Qshell,我在使用我通常使用的unix工具时遇到问题,因为我无法在QSHell中使用某些字符。例如,在linux中,我可以替换文件上的特定字节,如下所示: sed's/l/\x81/'a.txt 在这种情况下,我将用字节x81替换“l”。但是,在Qshell中,我不能使用\x,例如 printf '\x81' Öx81 正如我们所看到的,\x81不打印为“a”,这是EBCDIC中的\x81,即iSeries中的编码。它甚至不尝试打印一个字节,而是打印一个长度为4的字符串 我想做的只是简单地用sed

我在使用我通常使用的unix工具时遇到问题,因为我无法在QSHell中使用某些字符。例如,在linux中,我可以替换文件上的特定字节,如下所示:

sed's/l/\x81/'a.txt

在这种情况下,我将用字节x81替换“l”。但是,在Qshell中,我不能使用\x,例如

printf '\x81'
Öx81   
正如我们所看到的,\x81不打印为“a”,这是EBCDIC中的\x81,即iSeries中的编码。它甚至不尝试打印一个字节,而是打印一个长度为4的字符串

我想做的只是简单地用sed来代替回车,用回车和新线之类的东西。我意识到字符\在EBCDIC中不存在,因为{}也不存在。因此,也有一些unix命令使用那些在QShell中显示错误的字符。请帮助,我找不到一种方法使事情在线运行,所以我无法编写任何脚本

为了使问题不模棱两可,我特别需要一种在Qshell中使用字符的十六进制表示来打印字符的方法


我正在使用PCOMM tn5250连接到AS/400。

您需要像这样逃逸:

printf\\x81


a

我试过了,但它不起作用,printf“\\x81”Öx81$您是否在tn5250上配置了一些东西或更改了qshell的编码或类似的内容?thanksI使用ssh访问系统,然后启动qsh。您可能需要配置终端仿真器的代码页。