我有以下要求。我有一个输入流,需要截断到一定长度的字节。我事先不知道输入流的长度。如果流的长度小于设置的长度,我希望使用零字节来填充它。我试图使用truncate,但显然它只能处理文件,而不是stdin。
例如,假设我们的输入流(stdin)是TEST,我们希望达到10字节的长度。然后输出流(stdout)应该是TEST\x00\x00\x00\x00\x00。
为了澄清这个例子,这个例子是用小字符串来完成的,但是结果应该在大流(兆字节到一个千兆字节)中执行得很好。另外,我使用的容器目前是基于Ubuntu的。
发布于 2021-07-21 15:07:03
我找到了以下解决办法:
echo -n 'TEST' | cat - /dev/zero | dd bs=1 count=10 2>/dev/null | hexdump这样做可以正确地输出以下内容:
0000000 4554 5453 0000 0000 0000
000000a所以这对我来说是可行的,至少在Linux上是这样的,而且我不关心跨平台的可移植性。但我觉得可能有比dd更适合实现我的目标的命令。
https://unix.stackexchange.com/questions/659321
复制相似问题