Devices

如何在 /dev/zero 上放置一個位遮罩,以便我可以獲得零以外的字節?

  • February 6, 2016

如何設置位遮罩,/dev/zero以便我不僅可以為 0x00 提供源,還可以為 0x01 和 0xFF 之間的任何字節提供源?

以下bash程式碼設置為使用二進製表示的字節。但是,您可以輕鬆地將其更改為處理ocalaldecimalhex,只需將 r 數值更改2 為或並相應地設置即可。 8``10``16``b=

r=2; b=01111110
printf -vo '\\%o' "$(($r#$b))"; </dev/zero tr '\0' "$o"

編輯- 它確實處理所有字節值:十六進制 00 - FF(當我在下面寫 00-7F 時,我只考慮單字節 UTF-8 字元)。

例如,如果您只需要 4 個字節*(UTF-8 ‘ASCII’-only hex 00-7F 範圍內的字元),則可以將其通過管道輸入head*:... | head -c4

輸出(4 個字元):

~~~~

要查看 8 位格式的輸出,請將其通過管道傳輸到xxd(或任何其他1 和 0 的字節轉儲*):

例如。b=10000000和管道:... | head -c4 | xxd -b

0000000: 10000000 10000000 10000000 10000000                    ....

引用自:https://unix.stackexchange.com/questions/208656