Pass dd Skip|オフセットを16進数で探索

Pass dd Skip|オフセットを16進数で探索
# dd if=2013-Aug-uptime.csv bs=1 count=1 skip=3 2> /dev/null
d
# dd if=2013-Aug-uptime.csv bs=1 count=1 skip=0x3 2> /dev/null
f

2番目のコマンドが異なる値を出力するのはなぜですか?

スキップ|検索オフセットをdd16進値として渡すことはできますか?

ベストアンサー1

2番目のコマンドが異なる値を出力するのはなぜですか?

歴史的な理由で乗算演算子ddと見なされます。xしたがって、0x3ゼロと評価されます。

Skip | seekオフセットを16進値としてddに渡すことはできますか?

私が知る限り、直接ではありません。乗算に演算子を使用することに加えて、x数字の後にb「512乗算」(0x200)とK「1024乗算」(0x400)を追加することもできます。 GNU ddを使用すると、接尾辞、、、、、およびMを使用して、それぞれ20、30、40、50、60、70、80、または90の積を乗算することを意味でき、大文字または大文字にすることができGます。接尾辞を除いては小文字です。 (他の可能なサフィックスもたくさんあります。たとえば、「10 18乗算」は「2 50乗算」を意味します。GNUをインストールした場合は、詳細については参考資料を参照してください。)TPEZYbEBPiBinfo coreutils "block size"

上記のコンテンツが曖昧である、不適切である、迷惑である、または面白いと思うかもしれません。心配しないでください。あなたは一人ではありません。幸いなことに、これを完全に無視し、シェルの算術置換を使用できます(bashや他のPosix互換シェルだけでなく、いくつかの非Posixシェルも機能します)。シェルは16進数を理解し、一般的な方法で書かれたさまざまな算術演算子を受け入れます。式を次に囲むだけです$((...))

# dd if=2013-Aug-uptime.csv bs=1 count=$((0x2B * 1024)) skip=$((0x37))

おすすめ記事