Auf meiner aktuellen Workstation habe ich nur hexdump
und darf keine anderen Pakete wie installieren xxd
. Daher muss ich diesen xxd-Befehl in ein Hexdump-Äquivalent übersetzen
echo "my home is very good 002_" | xxd -p -c 256
#Output: 6d7920686f6d65206973207665727920676f6f64203030325f0a
echo "my home is very good 002_" | hexdump -e '256 1 "%x"'
#Output: 6d7920686f6d65206973207665727920676f6f64203030325fa
Wie Sie sehen, steht am Ende der Ausgabe eine zusätzliche „0“, was bedeutet, dass meine Lösung nicht funktioniert.
Kannst du mir bitte helfen?
Antwort1
Versuchen Sie, es %02x
als Formatbezeichner für Hexdump zu verwenden. Ein einzelnes Byte erhält kein Null-Präfix, wenn Sie es nicht angeben. Leider werden Ihre Zeilen dadurch aufgefüllt, wenn Sie sie nicht entfernen.
Zum Beispiel:
echo "" | hexdump -e '256 1 "%02x"'
#Output: 0a[followed by a significant amount of whitespace]
Um das Verhalten genau nachzubilden, können Sie hexdump mit Folgendem kombinieren fold
:
echo "" | hexdump -e '"%02x"' | fold -b -w512