生成大量相同字节

生成大量相同字节

我正在生成一个二进制文件作为软件的测试数据。测试数据应由相同字节的长数组组成。如果它是零字节,我会使用/dev/zero。是否有一个命令可以将零从那里转换为另一个字节,或者有一个命令可以做类似的事情?

我想出了这个 bash 脚本,但这个解决方案感觉并不理想。它只能生成固定数量的字节。肯定有一种方法可以用更简单的脚本来做到这一点。

for i in $(seq 5); do
    echo $'\x10'
done

答案1

用于/dev/zero生成n您选择的字符:

head -c "$n" /dev/zero | sed 's/\x00/a/g'

您应该将 替换a为您想要的任何角色。

例如:

$ n=50; head -c "$n" /dev/zero | sed 's/\x00/a/g'
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

这假设你有一个sed,比如GNU sed,是能够理解的\x00

或者,tr可以使用:

$ n=50; head -c "$n" /dev/zero | tr '\00' 'a'
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

相关内容