0

我在从标准输入通过 xxd 收集数据时遇到问题。这是命令:

xxd -r -p | dd of=/home/user/test/hex.bin obs=16

当我在 shell 中执行这个命令时,它会等待输入。我试图输入'0006303030304e430006303030304e43'然后按回车,但看起来xxd没有得到我的输入或没有通过管道输出到dd。

例如,这完美地工作:

echo '0006303030304e430006303030304e43' | xxd -r -p | dd of=/home/user/test/hex.bin obs=16

我想要实现的目标:我想放一些十六进制字符串,将其转换为二进制,然后以 16 位块的形式保存到文件中。脚本必须不断地在标准输入上监听。

xxd 是这样工作的吗?我试图将 \n 或 \r\n 放在十六进制字符串的末尾,但 xxd 输出上仍然没有任何内容。

谢谢你的帮助。

此致!

4

2 回答 2

1

只需附加-xxd -r -p命令,使其看起来像这样:

echo '0006303030304e430006303030304e43' | xxd -r -p - | dd of=/home/user/test/hex.bin obs=16

我在手册页中找到了这个xxd;更具体地说,该OPTIONS部分:

如果将infile指定为-字符,则输入取自标准输入。

于 2018-01-22T22:08:23.233 回答
0

xxd仍在等待输入;按 Enter 后键入 Control-D 以“关闭”输入文件。

于 2017-03-20T19:01:38.013 回答