我在使用通常使用的unix工具时遇到问题,因为我无法在QSHell中使用某些字符。例如,在linux中,我可以替换如下文件上的特定字节:
sed的s/l/\x81/'a.txt
在这种情况下,我将用x81字节替换"l"。但是,在Qshell中,我不能使用\x,例如
printf 'x81'
Öx81
正如我们所看到的,\x81不会打印为"a",这是EBCDIC中的\x81,EBCDIC是iSeries的编码。它甚至没有尝试打印一个字节,而是打印一个长度为4的字符串…
我想做的只是简单地使用sed来代替回车,用回车和换行之类的东西。我意识到字符\不存在于EBCDIC中,因为{}也不存在。因此,还有一些unix命令使用那些在QShell中显示错误的字符。请帮忙,我找不到在网上工作的方法,所以我没有写任何脚本。
为了使问题不含糊,我特别需要一种方法来打印一个字符,使用它在Qshell中的十六进制表示。
我正在使用PCOMM tn5250连接到AS/400。
您需要像这样逃离:
printf \x81
a