Como imprimir os primeiros 10 bytes em hexadecimal de um arquivo?

Respostas:

11

Eu vim aqui vendo três respostas pensando que não teria mais nada a acrescentar e que isso seria um exercício de quantas pessoas podem postar a mesma linha no primeiro minuto de uma pergunta ser feita. Mas eu acho pessoas usando alguma hexdumpferramenta nova . Esse comando tem muito mais que 2 letras; alude a alguma base que não seja A Única Base Verdadeira (base 8); e é até aparente pelo nome o que faz. Claramente, esse não é o caminho do Unix.

Então aqui está a alegria de od("octal dump").

Primeiro GNU, como você encontrará em seu Linux Mint:

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

Agora BSD, onde a ironia é que na verdade é o mesmo programa que hexdump:

od -t x1 -N 10 foo
JdeBP
fonte
1
Cortei meus dentes em microprocessadores de 8 bits, onde tudo foi feito em hexadecimal. Então, para mim, a única base verdadeira é 16. Eu uso o Unix desde 1984 e uma coisa que eu sempre odiei é a fixação com octal: não consigo suportar octal com sua codificação de 3 bits que não se estende perfeitamente de um a vários bytes. E literais inteiros octais em C e outras línguas são um acidente de trem que ainda causa estragos até hoje. (+1, por sinal)
Adrian Pronk 28/01
11

A opção -l len | -len lené para: parar após escrever <len>octetos.

Use-o com um arquivo como este:

xxd -l 10 file

ou

hexdump -C -n 10 file

onde -n lené igual à -lopção do xxd.

erik
fonte
5

Você pode usar xxdpara fazer isso.

$ xxd -ps -l 10 FILENAME
546865204d4954204c69

Isso imprime os primeiros 10 bytes ( -l 10) do FILENAMEformato hexadecimal simples ( -ps).

Daniel Beck
fonte