Comment imprimer les 10 premiers octets en hexadécimal d'un fichier?

Réponses:

11

Je suis venu ici voir trois réponses en pensant que je n'aurais rien à ajouter, et que ce serait un exercice sur le nombre de personnes qui peuvent poster le même 1-liner dans la première minute d'une question posée. Mais je trouve des gens qui utilisent un hexdumpoutil nouveau. Cette commande est bien plus longue que 2 lettres; il fait allusion à une base autre que The One True Base (base 8); et il est même évident de son nom ce qu'il fait. De toute évidence, ce n'est pas la manière Unix.

Voici donc la joie de od("octal dump").

Tout d'abord GNU, comme vous le trouverez sur votre Linux Mint:

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

Maintenant BSD, où l'ironie est qu'il s'agit en fait du même programme que hexdump:

od -t x1 -N 10 foo
JdeBP
la source
1
J'ai coupé mes dents sur des microprocesseurs 8 bits où tout était fait en hexadécimal. Donc pour moi, la seule vraie base est 16. J'utilise Unix depuis environ 84 et une chose que je déteste toujours, c'est sa fixation avec octal: je ne supporte pas octal avec son encodage 3 bits qui ne s'étendra pas de façon transparente d'un à plusieurs octets. Et les littéraux octaux entiers en C et dans d'autres langues sont une épave de train qui fait encore des ravages à ce jour. (+1, soit dit en passant)
Adrian Pronk
11

L'option -l len | -len lenest pour: arrêter après avoir écrit des <len>octets.

Utilisez-le avec un fichier comme celui-ci:

xxd -l 10 file

ou

hexdump -C -n 10 file

-n lenest identique à l' -loption de xxd.

erik
la source
5

Vous pouvez utiliser xxdpour cela.

$ xxd -ps -l 10 FILENAME
546865204d4954204c69

Ceci imprime les 10 premiers octets ( -l 10) de FILENAMEau format hexadécimal simple ( -ps).

Daniel Beck
la source