# 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番目のコマンドが異なる値を出力するのはなぜですか?
スキップ|検索オフセットをdd
16進値として渡すことはできますか?
ベストアンサー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をインストールした場合は、詳細については参考資料を参照してください。)T
P
E
Z
Y
b
EB
PiB
info coreutils "block size"
上記のコンテンツが曖昧である、不適切である、迷惑である、または面白いと思うかもしれません。心配しないでください。あなたは一人ではありません。幸いなことに、これを完全に無視し、シェルの算術置換を使用できます(bashや他のPosix互換シェルだけでなく、いくつかの非Posixシェルも機能します)。シェルは16進数を理解し、一般的な方法で書かれたさまざまな算術演算子を受け入れます。式を次に囲むだけです$((...))
。
# dd if=2013-Aug-uptime.csv bs=1 count=$((0x2B * 1024)) skip=$((0x37))