首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用NULL将stdin填充到所需长度的最佳方法

用NULL将stdin填充到所需长度的最佳方法
EN

Unix & Linux用户
提问于 2021-07-21 14:55:23
回答 1查看 403关注 0票数 1

我有以下要求。我有一个输入流,需要截断到一定长度的字节。我事先不知道输入流的长度。如果流的长度小于设置的长度,我希望使用零字节来填充它。我试图使用truncate,但显然它只能处理文件,而不是stdin。

例如,假设我们的输入流(stdin)是TEST,我们希望达到10字节的长度。然后输出流(stdout)应该是TEST\x00\x00\x00\x00\x00

为了澄清这个例子,这个例子是用小字符串来完成的,但是结果应该在大流(兆字节到一个千兆字节)中执行得很好。另外,我使用的容器目前是基于Ubuntu的。

EN

回答 1

Unix & Linux用户

发布于 2021-07-21 15:07:03

我找到了以下解决办法:

代码语言:javascript
复制
echo -n 'TEST' | cat - /dev/zero | dd bs=1 count=10 2>/dev/null | hexdump

这样做可以正确地输出以下内容:

代码语言:javascript
复制
0000000 4554 5453 0000 0000 0000
000000a

所以这对我来说是可行的,至少在Linux上是这样的,而且我不关心跨平台的可移植性。但我觉得可能有比dd更适合实现我的目标的命令。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/659321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档