wie Zeichenfolge in binäre Integer-Datei mit der Befehlszeile unter Linux konvertieren
Frage
Was ich will, ist eine ganze Zahl als Zeichenfolge, zum Beispiel „1234“ dargestellt zu nehmen, und wandeln es in eine Datei int genannt, eine 32-Bit-Big-Endian integer enthält, mit dem Wert 1234.
Die einzige Art, wie ich herausgefunden haben, dies zu tun, ist so etwas wie
echo 1234 | awk '{printf "0: %08X", $1}' | xxd -r > int
, die ein bisschen böse ist!
Kennt jemand einen besseren Weg?
Lösung 2
ok gut zu sehen, dass Mark Williams awol zu haben scheint, ich gegangen wird die korrigierte Version seiner Antwort schreiben
echo 1234 | perl -e 'print pack("N", <STDIN>); > int
Andere Tipps
Eine etwas einfachere Möglichkeit wäre:
printf "0: %08X" 1234 | xxd -r > int
Dies scheint die gleiche Leistung auf meinem System zu erzeugen. sicher sein, perldoc -f pack
zu überprüfen.
echo '1234' | perl -e 'print pack("nn", 0,<STDIN>);' > int
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow