table of contents
- buster-backports 4.10.0-1~bpo10+1
- testing 4.10.0-1
- unstable 4.10.0-1
HEXDUMP(1) | General Commands Manual | HEXDUMP(1) |
BEZEICHNUNG¶
hexdump
, hd
—
ÜBERSICHT¶
hexdump
[-bcCdovx
]
[-e
Formatzeichenkette]
[-f
Formatdatei]
[-n
Länge]
[-s
Versatz]
file ... hd
[-bcdovx
] [-e
Formatzeichenkette] [-f
Formatdatei] [-n
Länge]
[-s
Versatz]
file ...
BESCHREIBUNG¶
Das Dienstprogrammhexdump
ist ein Filter, der in einem
benutzerspezifischen Format die angegebenen Dateien oder den Inhalt der
Standardeingabe anzeigt (falls keine Dateien angegeben sind).
Folgende Optionen stehen zur Verfügung:
-b
- Oktale Ein-Byte-Anzeige. Dies zeigt den Eingabeversatz in hexadezimaler Form, gefolgt von sechzehn durch Leerräume getrennten, dreispaltigen, mittels Nullen aufgefüllten Bytes der Eingabedaten und in oktaler Notation pro Zeile an.
-c
- Zeichenbasierte Ein-Byte-Anzeige. Dies zeigt den Eingabeversatz in hexadezimaler Form, gefolgt von sechzehn durch Leerräume getrennten, dreispaltigen, mittels Leerräumen aufgefüllten Zeichen der Eingabedaten pro Zeile an.
-C
- Kanonische Hex+ASCII-Anzeige. Dies zeigt den
Eingabeversatz in hexadezimaler Form an, gefolgt von sechzehn durch
Leerräume getrennten, zweispaltigen hexadezimalen Bytes an, gefolgt
von den gleichen sechzehn Bytes im Format %_p, in |
eingeschlossen.
Der Aufruf des Befehls
hd
impliziert diese Option. -d
- Dezimale Zwei-Byte-Anzeige. Dies zeigt den Eingabeversatz in hexadezimaler Form, gefolgt von acht durch Leerräume getrennten, fünfspaltigen, mittels Nullen aufgefüllten Zwei-Byte-Einheiten der Eingabedaten und in vorzeichenloser dezimaler Notation pro Zeile an.
-e
Formatzeichenkette- gibt eine Formatzeichenkette an, die für die Anzeige der Daten verwendet werden soll.
-f
Formatdatei- gibt eine Datei an, die eine oder mehrere durch Zeilenvorschübe
getrennte Formatzeichenketten enthält. Leere Zeilen und solche,
deren erstes auf eventuellen Leerraum folgende Zeichen eine Raute ist
(
#
), werden ignoriert. -n
Länge- interpretiert nur die Bytes der Eingabe der angegebenen Länge.
-o
- Dies zeigt den Eingabeversatz in hexadezimaler Form, gefolgt von acht durch Leerräume getrennten, sechsspaltigen, mittels Nullen aufgefüllten Zwei-Byte-Einheiten der Eingabedaten und in oktaler Notation pro Zeile an.
-s
Versatz- überspringt den angegebenen Versatz an Bytes
vom Beginn der Eingabe. Standardmäßig wird der
Versatz als Dezimalzahl interpretiert. Mit
vorangestelltem
0x
oder0X
wird der Versatz als Hexadezimalzahl interpretiert, anderenfalls, mit vorangestelltem0
, als Oktalzahl. Durch Anhängen eines der Zeichenb
,k
oderm
an den Versatz wird dieser als Vielfaches von512
,1024
beziehungsweise1048576
interpretiert. -v
- veranlasst
hexdump
, alle Eingabedaten anzuzeigen. Ohne die Option-v
wird sämtliche Anzahl Ausgabezeilengruppen, die identisch zur unmittelbar vorausgehenden Ausgabezeilengruppe wären (außer den Eingabeversätzen), durch eine aus einem einzelnen Stern bestehende Zeile ersetzt. -x
- Hexadezimale Zwei-Byte-Anzeige. Dies zeigt den Eingabeversatz in hexadezimaler Form, gefolgt von acht durch Leerräume getrennten, vierspaltigen, mittels Nullen aufgefüllten Zwei-Byte-Einheiten der Eingabedaten und in hexadezimaler Notation pro Zeile an.
Für jede Eingabedatei kopiert
hexdump
die Eingabe sequenziell in die
Standardausgabe, wobei die Daten anhand der in den Optionen
-e
und -f
angegebenen
Formatzeichenketten in deren angegebener Reihenfolge umgewandelt werden.
Formate¶
Eine Formatzeichenkette enthält eine beliebige Anzahl an Formatierungseinheiten, die durch Leerzeichen getrennt sind. Eine Formatierungseinheit einhält bis zu drei Einträge: Einen Iterationszähler, einen Byte-Zähler und ein Format.Der Iterationszähler ist eine optionale positive Ganzzahl, deren Vorgabe 1 ist. Jedes Format wird so oft angewendet, wie der Iterationszähler angibt.
Der Byte-Zähler ist eine optionale positive Ganzzahl. Falls diese angegeben wird, gibt sie die Anzahl an Bytes an, die bei jeder Iteration des Formats interpretiert werden sollen.
Falls ein Iterations- oder Byte-Zähler angegeben ist, muss nach dem Iterationszähler und/oder vor dem Byte-Zähler ein einzelner Schrägstrich gesetzt werden, um die beiden Angaben eindeutig voneinander zu trennen. Sämtlicher Leerraum vor oder nach dem Schrägstrich wird ignoriert.
Das Format ist verpflichtend und muss in doppelte Anführungszeichen (" ") eingeschlossen werden. Es wird als eine Formatzeichenkette im Fprintf-Stil (siehe fprintf(3)) mit den folgenden Ausnahmen interpretiert:
- Ein Stern (*) darf nicht zur Angabe der Feldbreite oder Genauigkeit verwendet werden.
- Ein Byte-Zähler oder eine Feldgenauigkeit ist für jedes »s«-Konversionszeichen erforderlich (im Gegensatz zur Standardeinstellung in fprintf(3), wo die gesamte Zeichenkette ausgegeben wird, falls keine Genauigkeit angegeben ist).
- Die Konversionszeichen »%«, »h«, »l«, »n«, »p« und »q« werden nicht unterstützt.
- Die im C-Standard beschriebenen aus einem Zeichen bestehenden
Escape-Sequenzen werden unterstützt:
NUL \0 <Warnzeichen> \a <Rückschritt> \b <Seitenvorschub> \f <neue Zeile> \n <Wagenrücklauf> \r <Tabulator> \t <vertikaler Tabulator> \v
Das Dienstprogramm hexdump
unterstützt auch die folgenden zusätzlichen
Konversionszeichenketten:
- Cm _a[
dox
] - zeigt den Eingabeversatz des nächsten anzuzeigenden Bytes kumulativ
für alle Eingabedateien an. Die angehängten Zeichen
d
,o
undx
gibt die Basis der Anzeige als dezimal, oktal beziehungsweise hexadezimal an. _A
[dox
]- ist weitgehend identisch mit der Konversionszeichenkette
_a
, mit der Ausnahme, dass es nur einmal ausgeführt wird, wenn sämtliche Eingabedateien verarbeitet wurden. _c
- gibt Zeichen im Standard-Zeichensatz aus. Nicht darstellbare Zeichen werden in einer aus drei Zeichen bestehenden, mit Nullen aufgefüllten oktalen Schreibweise dargestellt. Das gilt nicht für jene, die in der Standard-Escape-Notation dargestellt werden können (siehe oben), wo die Anzeige in aus zwei Zeichen bestehenden Zeichenketten erfolgt.
_p
- gibt Zeichen im Standard-Zeichensatz aus. Nicht darstellbare Zeichen
werden als einzelner “
.
” angezeigt. _u
- gibt US- ASCII -Zeichen aus, mit der Ausnahme, dass Steuerzeichen in den
folgenden, klein geschriebenen Namen angezeigt werden. Zeichen
größer als 0xff hexadezimal werden als hexadezimale
Zeichenketten angezeigt.
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 SO 00F SI 010 DLE 011 DC1 012 DC2 013 DC3 014 DC4 015 NAK 016 SYN 017 ETB 018 CAN 019 EM 01A SUB 01B ESC 01C FS 01D GS 01E RS 01F US 07F DEL
Die vorgegebenen und unterstützten Byte-Zähler für die Konversionszeichen sind wie folgt:
Die Menge der von jeder Formatzeichenkette interpretierten Daten ist die Summe der für jede Formateinheit erforderlichen Daten, welches das Produkt aus dem Iterationszähler mit dem Byte-Zähler oder, falls der Byte-Zähler nicht angegeben ist, das Produkt aus dem Iterationszähler mit der Anzahl vom Format benötigten Bytes ist.
Die Eingabe wird in »Blöcken« verarbeitet, wobei ein Block als die größte Menge der von einer Formatzeichenkette bezeichneten Daten definiert ist. Bei Formatzeichenketten, die weniger als eine Eingabeblockgröße an Daten auswerten und deren letzte Formateinheit sowohl einen Anteil an Bytes interpretiert und als auch keinen angegebenen Iterationszähler haben, wird der Iterationszähler erhöht, bis der gesamte Eingabeblock verarbeitet wurde oder es nicht mehr genug verbleibende Daten im Block gibt, um der Formatzeichenkette zu entsprechen.
Falls ein Iterationszähler größer als 1 ist,
entweder als Ergebnis der Benutzerangabe oder wenn
hexdump
den Iterationszähler wie oben
beschrieben verändert hat, werden während der letzten
Iteration keine angehängten Leerzeichen ausgegeben.
Es ist ein Fehler, sowohl einen Byte-Zähler als auch
mehrere Konversionszeichen oder -zeichenketten anzugeben, es sei denn, alle
Konversionszeichen oder -zeichenketten bis auf eine sind
_a
oder _A
.
Falls, als Ergebnis der Angabe der Option
-n
oder wenn das Ende der Datei erreicht ist, die
Eingabedaten einer Formatzeichenkette nur teilweise entsprechen, wird der
Eingabeblock mit Nullen aufgefüllt, um alle verfügbaren Daten
anzuzeigen (das heißt, jede Formateinheit, die über das Ende
der Daten hinausgeht, zeigt einige NULL-Bytes an).
Weitere Ausgaben solcher Formatzeichenketten werden durch die
äquivalente Anzahl Leerzeichen ersetzt. Eine äquivalente
Anzahl Leerzeichen ist als die Anzahl der durch das Konversionszeichen
s ausgegebenen Leerzeichen definiert. Diese haben die gleiche
Feldbreite und Genauigkeit wie das ursprüngliche Konversionszeichen
oder die ursprüngliche Konversionszeichenkette, aber bei allen werden
die Konversionszeichen “+
”,
“ ”, “#
” entfernt
und referenzieren eine NULL-Zeichenkette.
Falls keine Formatzeichenketten angegeben sind, ist die
standardmäßige Anzeige äquivalent zum Ausgabeformat mit
der Option -x
.
EXIT-STATUS¶
Thehexdump
and hd
utilities
exit 0 on success, and >0 if an error occurs.
BEISPIELE¶
Die Eingabe im Durchsichtsformat anzeigen:"%06.6_ao " 12/1 "%3_u " "\t\t" "%_p " "\n"
Die Option -x implementieren:
"%07.7_Ax\n" "%07.7_ax " 8/2 "%04x " "\n"
Einige Beispiele für die Option -e:
# hexadezimale Bytes % echo hello | hexdump -v -e '/1 "%02X "' ; echo 68 65 6C 6C 6F 0A # das Gleiche mit ASCII-Abschnitt % echo hello | hexdump -e '8/1 "%02X ""\t"" "' -e '8/1 "%c""\n"' 68 65 6C 6C 6F 0A hello # hexadezimal mit vorangestelltem »x« % echo hello | hexdump -v -e '"x" 1/1 "%02X" " "' ; echo x68 x65 x6C x6C x6F x0A # ein Hex-Byte pro Zeile % echo hello | hexdump -v -e '/1 "%02X\n"' 68 65 6C 6C 6F 0A # Tabelle der Byte-Anzahl, hex, dezimal, oktal, ASCII % echo hello | hexdump -v -e '/1 "%_ad# "' -e '/1 "%02X hex"' -e '/1 " = %03i dec"' -e '/1 " = %03o oct"' -e '/1 " = _%c\_\n"' 0# 68 hex = 104 dec = 150 oct = _h_ 1# 65 hex = 101 dec = 145 oct = _e_ 2# 6C hex = 108 dec = 154 oct = _l_ 3# 6C hex = 108 dec = 154 oct = _l_ 4# 6F hex = 111 dec = 157 oct = _o_ 5# 0A hex = 010 dec = 012 oct = _ _ # Byte# und ASCII mit Steuerzeichen % echo hello | hexdump -v -e '/1 "%_ad# "' -e '/1 " _%_u\_\n"' 0# _h_ 1# _e_ 2# _l_ 3# _l_ 4# _o_ 5# _lf_
SIEHE AUCH¶
gdb(1), od(1)Die deutsche Übersetzung dieser Handbuchseite wurde von Mario Blättermann <mario.blaettermann@gmail.com> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer
29. Oktober 2014 | Linux 4.19.0-17-amd64 |