Jak wydrukować pierwsze 10 bajtów w systemie szesnastkowym pliku?

Odpowiedzi:

11

Przybyłem tutaj, widząc trzy odpowiedzi, myśląc, że nie mam nic do dodania, i że byłoby to ćwiczenie na to, ile osób może opublikować ten sam 1-linijka w pierwszej minucie pytania. Ale znajduję ludzi używających jakiegoś nowego hexdumpnarzędzia. Że polecenie jest sposób dłużej niż 2 liter; nawiązuje do jakiejś bazy innej niż The One True Base (baza 8); i z jego nazwy wynika nawet, co robi. Oczywiście nie jest to sposób uniksowy.

Oto radość z od(„ósemkowego zrzutu”).

Najpierw GNU, jak znajdziesz na Linux Mint:

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

Teraz BSD, ironia polega na tym, że jest to właściwie ten sam program, co hexdump:

od -t x1 -N 10 foo
JdeBP
źródło
1
Obcinałem zęby na 8-bitowych mikroprocesorach, w których wszystko odbywało się w systemie szesnastkowym. Tak więc dla mnie jedyną prawdziwą podstawą jest 16. Używam Uniksa od około 84 roku, a jedną rzeczą, którą zawsze nienawidziłem, jest jego poprawka na ósemkę: nie mogę znieść ósemki dzięki 3-bitowemu kodowaniu która nie będzie płynnie rozciągać się z jednego do wielu bajtów. A ósemkowe liczby całkowite w C i innych językach to wrak pociągu, który do dziś sieją spustoszenie. (Nawiasem mówiąc, +1)
Adrian Pronk
11

Opcja -l len | -len lendotyczy: zatrzymaj po zapisaniu <len>oktetów.

Użyj go z takim plikiem:

xxd -l 10 file

lub

hexdump -C -n 10 file

gdzie -n lenjest to samo co -lopcja z xxd.

erik
źródło
5

Możesz xxdto zrobić.

$ xxd -ps -l 10 FILENAME
546865204d4954204c69

Spowoduje to wydrukowanie pierwszych 10 bajtów ( -l 10) FILENAMEw formacie szesnastkowym ( -ps).

Daniel Beck
źródło