【发布时间】:2016-06-10 21:09:50
【问题描述】:
我正在将一些十六进制 ascii 导入 perl,并希望使用它的打印功能将这些内容打印到文件中。但是十六进制不打印为 ascii,而是打印为普通字符串
echo "\x48\x32\x35\x45" "\x90\xc1\xe2\x7a" | perl -e' @string = split " ",<>; print ${string[0]},chr(0),"$string[1]";' > input.txt
这在 input.txt 中给出了以下内容
\x48\x32\x35\x45^@\x90\xc1\xe2\x7a
它应该看起来更像的地方
H25E^@<90><C1><E2>z
【问题讨论】:
-
这是你想要的
echo -en "\x48\x32\x35\x45 \x90\xc1\xe2\x7a"吗?甚至echo -en "\x48\x32\x35\x45 \x90\xc1\xe2\x7a" | cat -A? -
0x7F 以上的任何字符代码都不是 ASCII。您是说希望小于 0x2o 的任何内容显示为
^@等,大于 0x7E 的任何内容显示为<7F>?
标签: bash perl escaping hex ascii