我遇到了从stdin通过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位块保存到文件。脚本必须不断地监听stdin。
xxd是否以这种方式工作?我试图将\ n或\ r \ n放在十六进制字符串的末尾,但xxd输出中仍然没有。
感谢您的帮助。
祝你好运!
答案 0 :(得分:1)
只需将-
附加到xxd -r -p
命令,使其如下所示:
echo '0006303030304e430006303030304e43' | xxd -r -p - | dd of=/home/user/test/hex.bin obs=16
我在xxd
的手册页中找到了这个;更具体地说,OPTIONS
部分:
如果将 infile 指定为
-
个字符,则输入来自标准输入。
答案 1 :(得分:0)
xxd
仍在等待输入;输入“关闭”输入文件后键入Control-D。