如何在bash中创建具有特定十六进制模式的文件
我试图在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如何在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
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的答案可能是正确的。