Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在bash中创建具有特定十六进制模式的文件_Bash_Dd - Fatal编程技术网

如何在bash中创建具有特定十六进制模式的文件

如何在bash中创建具有特定十六进制模式的文件,bash,dd,Bash,Dd,我试图在bash中创建许多具有特定4字节十六进制模式的文件(4KB~10MB) 比如说, 0000000:1234 5678 1234 5678 1234 5678 1234 5678 1234 5678 因此,我使用'dd'生成零模式数据,并将其转换为特定的4字节十六进制模式,如下所示 dd if=/dev/zero bs=1k count=10 | tr“\000”$”\x12345678'>File.bin 但它只返回给定十六进制模式的前1个字节 0000000:1212121212121

我试图在bash中创建许多具有特定4字节十六进制模式的文件(4KB~10MB)

比如说,

0000000:1234 5678 1234 5678 1234 5678 1234 5678 1234 5678

因此,我使用'dd'生成零模式数据,并将其转换为特定的4字节十六进制模式,如下所示

dd if=/dev/zero bs=1k count=10 | tr“\000”$”\x12345678'>File.bin

但它只返回给定十六进制模式的前1个字节

0000000:12121212121212121212121212121212121212121212121212

我应该确定哪一点?

关于little endian

printf '\x34\x12\x78\x56%.0s' {1..10} > File.bin
关于little endian

printf '\x34\x12\x78\x56%.0s' {1..10} > File.bin
您可以使用perl

$ dd if=/dev/zero bs=1k count=10 | perl -0777 -pe "s/\x00{4}/\x12\x34\x56\x78/g" > file.bin

$ xxd file.bin 

0000000: 1234 5678 1234 5678 1234 5678 1234 5678  .4Vx.4Vx.4Vx.4Vx
0000010: 1234 5678 1234 5678 1234 5678 1234 5678  .4Vx.4Vx.4Vx.4Vx
...
您可以使用perl

$ dd if=/dev/zero bs=1k count=10 | perl -0777 -pe "s/\x00{4}/\x12\x34\x56\x78/g" > file.bin

$ xxd file.bin 

0000000: 1234 5678 1234 5678 1234 5678 1234 5678  .4Vx.4Vx.4Vx.4Vx
0000010: 1234 5678 1234 5678 1234 5678 1234 5678  .4Vx.4Vx.4Vx.4Vx
...

谢谢,但是有什么办法可以提高性能吗?我需要生成数千MB的文件抱歉,这不清楚,@123的答案可能是正确的。谢谢,但是有什么可以提高性能的方法吗?我需要制作数千MB的文件对不起,那不清楚,@123的答案可能是正确的。