gpt4 book ai didi

linux - 使用标准输入将一些十六进制字符串放入 xxd 不会生成任何输出

转载 作者:太空宇宙 更新时间:2023-11-04 10:23:14 24 4
gpt4 key购买 nike

我在通过 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 位 block 的形式保存到文件中。该脚本必须不断地监听标准输入。

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

感谢您的帮助。

最好的问候!

最佳答案

只需将 - 附加到 xxd -r -p 命令,如下所示:

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

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

If infile is specified as a - character, then input is taken from standard input.

关于linux - 使用标准输入将一些十六进制字符串放入 xxd 不会生成任何输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42910838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com