Shell-Script
如何創建具有特定值的二進製文件?
我需要創建一個僅用
11111111
.我只知道如何創建零填充二進製文件
dd if=/dev/zero bs=18520 count=1
你能告訴我我應該使用管道中的什麼命令來填充垃圾箱
1
嗎?在這種情況下我該如何使用awk
?
可能最容易使用
tr
將零轉換為/dev/zero
您想要的任何內容,然後使用dd
orhead
或諸如此類切割成長度。這將寫入所有位為 1 的 18520 個字節,因此作為輸入的八進制值 0xff 或 255 或 377 必須是:
< /dev/zero tr '\000' '\377' | head -c 18520 > test.bin
(要將十六進製或十進制轉換為八進制,您可以使用
printf "%o\n" 0xff
or 這樣的。)要生成超過一字節字元串的流,我會使用 Perl:
perl -e '$a = "abcde" x 1024; print $a while 1' | head ...
(當然你也可以使用
"\xff"
or"\377"
那裡。我在那裡使用了重複運算符x 1024
,主要是為了避免最小的小寫入。更改它可能會或可能不會影響其性能。)