【发布时间】:2019-12-16 10:37:24
【问题描述】:
我正在尝试从文件中获取每个带有尾部的新行并将其转换为 hexdump,但我无法将其写入文件,我尝试使用 >> 和 | tee -a destfile 但是它没有给出任何错误但停止工作。
所以,我有一个二进制文件(data.bin),它总是用脚本增加新行。我正在尝试读取并将其转换为十六进制,效果很好,并且输出良好:
tail -f data.bin | hexdump -e '16/1 "%02x " "\n"'
这会输出这个:
01 55 1d fa 14 ae b5 41 ec 51 3c 42 64 55 00 00
74 5e f7 5d 00 00 00 00 02 55 1d fa 33 33 b3 41
7b 14 3f 42 63 55 00 00 74 5e f7 5d 00 00 00 00
当我尝试这样做时
tail -f data.bin | hexdump -e '16/1 "%02x " "\n"' >> destfile.txt
它创建一个空文件并且不写任何东西。
【问题讨论】:
-
您能否向我们展示您使用的确切命令及其结果(创建了一个空文件,未创建文件,...)?通常
... >> file应该可以工作。 -
@GonçaloSantos 请edit您的问题添加所需的信息,而不是在评论中回答。
-
如果将命令的输出重定向到文件,当
stdout连接到终端时,大多数程序将使用完全缓冲输出而不是行缓冲输出。如果tail -f没有产生足够的输出,您可能需要等待足够长的时间才能看到文件中的输出。 -
@Bodo 对不起,我已经编辑过了。我会尝试等待更长的时间
-
@Bodo 直到现在它仍在运行,它没有向文件写入任何内容