Ich mag es wirklich hexdump
, besonders weil Sie ein benutzerdefiniertes Format definieren können; sagen:
$ echo -e '\x00\x01\x02\x03' | hexdump -v -e '1/1 "%_ad: "' -e '4/1 "%02X "' -e '1/1 " : "' -e '4/1 "%_p"' -e '1/1 "\n"'
0: 00 01 02 03 : ....
4: 0A : .
Ich kann also beispielsweise 4 Bytes pro Zeile wählen, die zuerst hexadezimal und dann als Zeichen geschrieben werden. Was mir hier jedoch fehlt, ist ein Formatierungszeichen für "Binärzeichenfolgen" (oder "Bitfolgen"). zB möchte ich so etwas wie -e '4/1 "%08b "'
irgendwo in diese Kommandozeile schreiben und erhalten, zB:
0: 00 01 02 03 : 00000000 00000001 00000010 00000011 : ....
4: 0A : 00001010 : .
Natürlich müsste man dann wahrscheinlich die Endianness angeben (wenn Gruppen mit mehr als einem Byte formatiert werden sollen) usw. Aber diese Art der Formatierung gibt es auf keinen Fall, soweit ich im hexdump
Handbuch sehen kann .
Meine Frage ist also: Welche Alternativen habe ich in einer Linux-Befehlszeile, damit ich einen formatierten Speicherauszug erhalten kann, der die oben genannten Binärzeichenfolgen enthält und dennoch die Anpassbarkeit des hexdump
Programms (in Bezug auf die Byte-Gruppierung) so weit wie möglich beibehält ) bei Verwendung seiner -e
Option?
:)
. Ich habe ausgecheckt xxd
, und es gibt ein -b: Switch to bits (binary digits) dump,
, aber ich kann kein Beispiel finden, in dem diese Ausgabe mit hex gemischt wird (wie ich im OP ein Beispiel angegeben habe); Wenn jemand ein Beispiel dafür mit posten kann xxd
, wäre das eine akzeptable Antwort. Prost!
xxd
mit : echo -e '\x00\x01\x02\x03' | xxd -c 2 -b
; Das Vorhandensein des -b
Schalters ändert alles in eine binäre Zeichenfolge und kann daher anscheinend nicht mit hexadezimal "gemischt" werden.
xxd
?