wie Zeichenfolge in binäre Integer-Datei mit der Befehlszeile unter Linux konvertieren

StackOverflow https://stackoverflow.com/questions/422840

  •  05-07-2019
  •  | 
  •  

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?

War es hilfreich?

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
scroll top