2016-06-03 13 views
1

Ich habe einen HEX-String in meinem Bash-Skript wie folgt aus:BASH - HEX String Binär-Datei schreiben

1B6C00001AD615 

Ich möchte diese Zeichenfolge in einer Binärdatei schreiben. (die binäre Darstellung dieser Zeichenkette in einer Datei, die zB mit einem normalen Hexeditor gelesen werden kann)

Ich habe versucht, "bc" mit ibase = 16 und obase = 2 zu verwenden, habe das binäre Ergebnis in einer Zeichenkette und in folgendem Beispiel

echo -n -e 0100011000100101010101000010010 

Aber wenn ich

versuchen
vim -b myFile 

erscheint es ist nicht versucht, wie das in eine Datei zu echo, wie es sollte. Irgendwelche Vorschläge>

+1

Siehe auch: [Linux-Shell-Scripting: Hex-String an Bytes] (http://stackoverflow.com/q/ 1604765/3776858) – Cyrus

Antwort

1

Sie können immer bc für Base-Konvertierungen verwenden, wenn Sie an der binären Darstellung des Werts interessiert sind, z.

$ echo "obase=2; ibase=16; 1B6C00001AD615" | bc 
11011011011000000000000000000000110101101011000010101 

(Anmerkung: Ihre binäre Darstellung des Wertes in Ihrer Frage ist falsch)

+0

Ich musste tun, was Sie gesagt haben + truncate die neuen Zeilen und Leerzeichen, die bc hinzugefügt, um lange Werte zu teilen. Außerdem musste ich das holen und es mit "echo -e" in die Datei einspielen, damit es funktioniert. Ich muss noch überprüfen, ob die Ausgabe genau richtig ist, aber ich muss erst noch etwas mehr ändern. und ja :) meine binäre Darstellung ist falsch für den Grund, warum es zufällig war und die Darstellung der HEX ich oben geschrieben habe. Ich wollte nur zeigen, was ich will, nicht das tatsächliche Ergebnis. – Panos

+0

Sicher verstand ich, was Sie wollten, keine große Sache auf der binären in Ihrer Frage, ich wollte nur sicherstellen, dass wir auf der gleichen Seite waren und wenn nicht, geben Sie Ihnen eine Chance, darauf hinzuweisen. Froh, dass es geholfen hat. Viel Glück mit Ihrem Scripting. –