Hexdump - comandă Linux - comandă Unix

Nume

hexdump - ascii, zecimal, hexazecimal, dump octal

Rezumat

[- bcCdovx ] - cuvinte [- e format_string ] - cuvinte [- f format_file ] - cuvinte [- lungime n ] - cuvinte [- s sari ] fișier ...

Descriere

Utilitarul hexdump este un filtru care afișează fișierele specificate sau intrarea standard, dacă nu sunt specificate fișiere, într-un format specificat de utilizator.

Opțiunile sunt următoarele:

-b

Afișare octală pe un octet Afișarea offsetului de intrare în hexazecimal, urmată de șaisprezece octeți separați de spațiu, trei coloane, cifre de intrare zero, în octal, pe linie.

-c

Afișarea caracterelor de un octet Afișează offsetul de intrare în hexazecimal, urmat de șaisprezece caractere cu spațiu separat, trei coloane, spațiu umplut, date de intrare pe linie.

-C

Afișaj canonic hex + ASCII Afișează offsetul de intrare în hexazecimal, urmat de șaisprezece octeți separați spațiu, două coloane, hexazecimale, urmate de aceiași șaisprezece octeți în format% _p închis în caractere `` | ''.

-d

Afișaj zecimal cu două octeți Afișați decalajul de intrare în hexazecimal, urmat de opt spațiu-separate, cinci coloane, zero-umplut, două-byte unități de date de intrare, în zecimale nesemnate, pe linie.

-e format_string

Specificați un șir de formate care să fie utilizat pentru afișarea datelor.

-f format_file

Specificați un fișier care conține unul sau mai multe șiruri de format separate. Liniile și liniile goale al căror prim caracter nu este gol este o marcă hash ( # sunt ignorate.

- în lungime

Interpretați numai octeți de lungime de intrare.

o-

Afișaj octal pe două octeți Afișează offsetul de intrare în hexazecimale, urmate de o cantitate de date de intrare, în octal, pe linie, urmată de opt coloane, cu o singură coloană, pline de zero, de două octeți.

- este compensată

Deplasați octeții offset de la începutul intrării. Implicit, offsetul este interpretat ca un număr zecimal. Cu un decalaj de 0x sau 0X este interpretat ca un număr hexazecimal, în caz contrar, un decalaj 0 principal este interpretat ca un număr octal. Adăugarea caracterului b k sau m pentru a compensa determină interpretarea acestuia ca un multiplu de 512 1024 sau, respectiv, 1048576 .

-v

Opțiunea - v face ca hexdumpul să afișeze toate datele de intrare. Fără opțiunea - v , orice număr de grupuri de linii de ieșire, care ar fi identice cu grupul de linii de ieșire imediat precedent (cu excepția offseturilor de intrare), sunt înlocuite cu o linie formată dintr-un singur asterisc.

-X

Afișaj hexazecimal cu două octeți Afișează decalajul de intrare în hexazecimal, urmat de opt, spațiu separat, patru coloane, cantități zero, două octeți de date de intrare, în hexazecimal, pe linie.

Pentru fiecare fișier de intrare, se copiază secvențial intrarea la ieșirea standard, transformând datele în funcție de șirurile de formatare specificate de opțiunile - e și - f , în ordinea în care au fost specificate.

formate

Un șir de format conține orice număr de unități format, separate prin spații albe. O unitate de formatare conține până la trei elemente: un număr de iterații, un număr de octeți și un format.

Numărul de iterații este un număr întreg pozitiv opțional, care este implicit la unu. Fiecare format este aplicat de câte ori iterație.

Numărul de octeți este un întreg pozitiv opțional. Dacă este specificat, acesta definește numărul de octeți care trebuie interpretați de fiecare iterație a formatului.

Dacă este specificat un număr de iterație și / sau un număr de octeți , trebuie să se plaseze o singură bară după numărul iterației și / sau înainte ca numărul de octeți să fie dezambiguat.

Orice spațiu alb înainte sau după slash este ignorat.

Formatul este necesar și trebuie să fie înconjurat de citate dublă (""). Este interpretat ca un șir de format în stil fprintf (vezi fprintf (3)), cu următoarele excepții:

Hexdump acceptă, de asemenea, următoarele șiruri suplimentare de conversie:

_a [ dox ]

Afișați offsetul de intrare, cumulativ între fișierele de intrare, al următorului octet care urmează să fie afișat. Caracterele atașate d o și x specifică baza de afișare ca zecimal, octal sau hexazecimal.

_A [ dox ]

Este identic cu șirul de conversie _a cu excepția faptului că este efectuat numai o singură dată, când au fost procesate toate datele de intrare.

_C

Caracterele de ieșire din setul de caractere implicit. Caracterele netipărite sunt afișate în trei caractere, cu octal zero, cu excepția celor reprezentabile prin notația standard de evacuare (vezi mai sus), care sunt afișate ca două șiruri de caractere.

_P

Caracterele de ieșire din setul de caractere implicit. Caracterele neimprimate sunt afișate ca un singur `` . „“

_u

Ieșiți caracterele ASCII din SUA, cu excepția faptului că caracterele de control sunt afișate utilizând numele de mai jos, cu litere mici. Caractere mai mari de 0xff, hexazecimal, sunt afișate ca șiruri hexazecimale.

000 nul 001 soh 002 stx 003 etx 004 eot 005 enq

006 ack 007 bel 008 bs 009 ht 00A lf 00B vt

00C ff 00D cr 00E deci 00F și 010 dle 011 dc1

012 dc2 013 dc3 014 dc4 015 nu 016 syn 017 etb

018 can 019 01A sub 01B esc 01C fs 01D gs

01E rs 01F noi 0FF del

Numărul implicit și cel acceptat de octeți pentru caracterele de conversie sunt după cum urmează:

% _c,% _p,% _u,% c

Un octet contează numai.

% d,% i,% o % u,% X,% x

Sunt acceptate patru octeți prestabilite, unul, doi și patru octeți.

% E,% e,% f % G,% g

Se acceptă opt octeți implicit, patru octeți.

Cantitatea de date interpretată de fiecare șir de formate reprezintă suma datelor solicitate de fiecare unitate de formatare, care este numărătoarea iterației ori numărul de octeți sau iterația numără ori numărul de octeți cerut de format dacă numărul de octeți nu este specificate.

Intrarea este manipulată în `` blocuri '', unde un bloc este definit ca cea mai mare cantitate de date specificată de orice șir de formate. Formatarea șirurilor de caractere care interpretează mai puțin decât datele unui bloc de intrare, a căror ultimă unitate de formatare interpretează un număr de octeți și nu are un număr de iterații specificat, numărul iterației a crescut, până când întregul bloc de intrare a fost procesat sau nu există suficiente date rămânând în bloc pentru a satisface șirul de format.

Dacă, fie ca urmare a specificației utilizatorului, fie a modificării hexate a numărului iterației, așa cum este descris mai sus, un număr de iterații este mai mare decât unul, în timpul ultimei iterații nu sunt emise niciun caractere albe.

Este o eroare să specificați un număr de octeți, precum și mai multe caractere sau șiruri de conversie, cu excepția cazului în care toate caracterele sau șirurile de conversie, cu excepția unuia dintre caracterele de conversie, sunt _a sau _A

Dacă, ca urmare a specificării opțiunii - n sau a sfârșitului fișierului, datele de intrare satisface doar parțial un șir de format, blocul de intrare este suficient de căptușit pentru a afișa toate datele disponibile (adică orice unități format care se suprapun sfârșitul datelor va afișa un număr de octeți zero).

Efectul suplimentar al acestor șiruri de formate se înlocuiește cu un număr echivalent de spații. Un număr echivalent de spații este definit ca numărul de spații afișate de un caracter de conversie s cu aceeași lățime de câmp și cu precizie ca și caracterul de conversie original sau șirul de conversie, dar cu orice "" "" "" "" # caractere de semnalizare de conversie eliminate și referindu-se la un șir NULL.

Dacă nu sunt specificate șir de formate, afișajul implicit este echivalent cu specificarea opțiunii - x .

iese 0 la succes și> 0 dacă apare o eroare.

EXEMPLE

Afișați intrarea în format perusal:

"% 06.6_ao" 12/1 "% 3_u" "\ t \ t" "% _p" "\ n"

Implementați opțiunea -x:

"% 07.7_Ax \ n" "% 07.7_ax" 8/2 "% 04x" "\ n"

Standarde

Se preconizează că utilitarul va fi St -p1003.2 compatibil.