我正在生成一个二进制文件作为软件的测试数据。测试数据应由相同字节的长数组组成。如果它是零字节,我会使用/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