我有一个(unix文本)十六进制值列表,表示不同字符集的单词。 我希望它们被转换为字符串列表。执行单个转换(例如
)没有问题echo 'c3a9636f6e6f6d69657332303039' | xxd -p -r
économies2009
echo'c3a9636f6e6f6d69657332303039'| xxd -p -r> output.txt的
正在运作。
一旦我尝试使用混合字符集的十六进制值批量转换列表,所有内容都会混淆。没有LF,没有转换。
我尝试用
循环while read line
do...
原因。我很感激有任何暗示让它发挥作用。
提前致谢了。
---对不起,如果我错过了解释----
在一个名为testhex.txt
的文件中,这个例子是很多的四个值 ba31323334
c3a85ec3a7
c3a9636f6e6f6d69657332303039
d8a8d8a7d8b3d988d988d8b1d8af
在控制台中使用单个命令,如
echo 'ba31323334' | xxd -p -r
echo 'c3a85ec3a7' | xxd -p -r
echo 'c3a9636f6e6f6d69657332303039' | xxd -p -r
echo 'd8a8d8a7d8b3d988d988d8b1d8af' | xxd -p -r
会给出
?1234
è^ C
économies2009
باسوورد
如果我尝试循环testhex.txt并将输出写入文件,则会出现问题。虽然它在控制台中非常完美,但
while read line
do
DATA=$(echo $line | xxd -p -r)
echo "$DATA"
done < testhex.txt
如果我在我的例子中写文件,我会得到
∫1234
è^ç
économies2009
باسوورد
我一直在尝试python的binascii。问题在于写出来。也许它只是不起作用 - 但可能我错过了重要的一点
thx求助