Linuxでコマンドラインを使用して文字列をバイナリ整数ファイルに変換する方法
質問
私が欲しいのは、文字列として表される整数、たとえば<!> quot; 1234 <!> quot;を、32ビットのビッグエンディアン整数を含むintというファイルに変換することです。値1234。
これを行うための唯一の方法は、次のようなものです
echo 1234 | awk '{printf "0: %08X", $1}' | xxd -r > int
ちょっと厄介です!
誰かがもっと良い方法を知っていますか?
解決 2
わかりました、ウィリアムズのマークがうまく行っていないようです。彼の答えの修正版を投稿します
echo 1234 | perl -e 'print pack("N", <STDIN>); > int
他のヒント
もう少し簡単な方法は次のとおりです。
printf "0: %08X" 1234 | xxd -r > int
これは、システム上で同じ出力を生成するようです。必ずperldoc -f pack
を確認してください。
echo '1234' | perl -e 'print pack("nn", 0,<STDIN>);' > int
所属していません StackOverflow