0

我在使用我通常使用的 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。

4

1 回答 1

0

您需要像这样逃脱逃脱:

printf \\x81

a

于 2020-09-16T20:11:28.780 回答