XXD-Ausgabe ohne Zeilenumbrüche

12

Kann ich festlegen xxd, dass keine Zeilenumbrüche in der Ausgabe gedruckt werden sollen und mein Dump als eine fortlaufende Zeile angezeigt wird?

[user@localhost] : ~ $ echo -n "this is a long line and xxd is going to take multiple lines to print it" | xxd -p
746869732069732061206c6f6e67206c696e6520616e6420787864206973
20676f696e6720746f2074616b65206d756c7469706c65206c696e657320
746f207072696e74206974
Saftig
quelle
5
Sie können einfach trdie Zeilenumbrüche löschen, z. B.... | xxd -p | tr -d \\n
don_crissti
Es hängt davon ab, wofür Sie es benötigen, aber eine praktische Option xxdist, dass es Whitespace für die Umkehrung -rseines Postkripts / Plain -pDump (oder eines beliebigen Plain Hexdump für diese Angelegenheit) ignoriert . z.B. Die folgende Zeile wird umbrochen \n, aber die umgekehrte Ausgabe ist genau das, was eingegeben wurde: echo {1..14} | xxd -p | xxd -p -rErzeugt die Ausgabe: 1 2 3 4 5 6 7 8 9 10 11 12 13 14\n - Die \nstammt vonecho
Peter.O
1
Sie können auch hexdump -v -e '/1 "%02X"'anstelle von verwenden xxd.
Dirkt

Antworten:

14

Was Sie brauchen, ist die Option -c.

# echo -n "this is a long line and xxd will print it as one line" | xxd -p -c 1000000

746869732069732061206c6f6e67206c696e6520616e64207878642077696c6c207072696e74206974206173206f6e65206c696e65

Hier einige Informationen aus der Dokumentation :

-c cols | -cols cols formatiert Oktette pro Zeile. Standard 16 (-i: 12, -ps: 30, -b: 6). Max 256.

Die Dokumentation besagt, dass der Maximalwert für den Parameter "c" 256 ist, aber ich habe größere Werte ausprobiert und es hat funktioniert. Hör zu:

# xxd -c 1000000 -p -l 1000000 /dev/urandom | wc -c
2000001

Hier lösche ich eine Million Bytes aus / dev / random und erhalte eine Zeichenfolge von 2 Millionen + 1 Zeichen. Jedes Byte aus / dev / random wird durch 2 Zeichen dargestellt und zusätzliches Byte ist die letzte neue Zeile.

Graf
quelle