如何将此输出命令写入文件

问题描述 投票:0回答:1

我正在尝试从文件中获取所有带尾巴的新行并将其转换为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 

它将创建一个空文件,不写入任何内容。

linux bash tail hexdump
1个回答
0
投票

当您重定向命令的输出时,输出流将被完全缓冲,因此直到刷新后才可见。您可以阅读示例this link了解更多信息。

要缓冲输出行,可以使用GNU coreutils中的stdbuf实用程序:

stdbuf

这样,将在每一行刷新输出。

© www.soinside.com 2019 - 2024. All rights reserved.