Як надрукувати перші 10 байт у шістнадцятковій частині файлу?


Відповіді:


11

Я прийшов сюди, побачивши три відповіді, думаючи, що я нічого не можу додати, і що це буде вправою того, скільки людей можуть опублікувати той самий 1-лайнер у першу хвилину запитання. Але я знаходжу людей, які використовують якийсь новий захоплений hexdumpінструмент. Ця команда є способом більше 2 літер; він натякає на якусь базу, крім Єдиної істинної бази (база 8); і навіть з його імені видно, що він робить. Зрозуміло, що це не спосіб Unix.

Отож ось радість od(«восьмеричний відвал»).

По-перше, GNU, як ви знайдете на своєму Linux Mint:

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

Тепер BSD, де іронія полягає в тому, що це насправді та сама програма, що і hexdump:

od -t x1 -N 10 foo

1
Я різав зуби на 8-бітових мікропроцесорах, де все робилося в шістнадцять. Тож для мене, одна справжня база - 16. Я користувався Unix приблизно з 84-го, і одне, що я завжди, завжди ненавиджу, це його фіксація восьмериками: я не можу витримати восьмерику з її 3-бітним кодуванням який не може легко поширюватися від одного до кількох байтів. А восьмі восьмі цілі літерали на С та інших мовах - це аварія поїздів, яка й досі спричиняє хаос. (+1, до речі)
Адріан Пронк

11

Варіант -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у простому шестигранному форматі ( -ps).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.