ファイルの16進数の最初の10バイトを印刷する方法?


回答:


9

私はここに私は追加するものが何もないことを考えて、そしてこれが質問された質問の最初の1分に同じ1ライナーを投稿することができる演習になるだろうと考えて3つの答えを見ました。しかし、私は人々が新しいものを使っているのを見つけます hexdump ツール。そのコマンドは 方法 2文字を超えるそれはThe One True Base(base 8)以外の何らかの根拠を示唆しています。それはその名前からそれが何をするのかさえ明らかです。明らかにこれはUnixのやり方ではありません。

だからここに喜びがあります od ( "オクタルダンプ")。

あなたのLinux Mintで見つけることができるように、最初のGNU。

od --format=x1 --read-bytes=10 foo

今BSD、皮肉なことに、それは実際には同じプログラムです。 hexdump

od -t x1 -N 10 foo

1
私はすべてが16進数で行われた8ビットマイクロプロセッサで歯を切った。私にとって、本当のベースは16です。'84年以来、私はUnixを使ってきました。そして、いつも嫌われていることの1つは、8進数による固定です。これは、1バイトから複数バイトにシームレスには広がりません。そして、C言語や他の言語の8進整数リテラルは、いまだに混乱を招いている列車事故です。 (+1、ところで)
Adrian Pronk

8

オプション -l len | -len len のためです:書いた後に停止 <len> オクテット

このようなファイルでそれを使用してください:

xxd -l 10 file

または

hexdump -C -n 10 file

どこで -n len と同じです -l xxdからのオプション。


5

あなたが使用することができます xxd それをするために。

$ xxd -ps -l 10 FILENAME
546865204d4954204c69

これは最初の10バイト( -l 10 の) FILENAME 通常の16進数形式で( -ps

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.