私が望むのは、「1234」などの文字列として表される整数を取得し、それを値1234の32ビットビッグエンディアン整数を含むintというファイルに変換することです。
これを行うために私が考え出した唯一の方法は、次のようなものです
echo 1234 | awk '{printf "0: %08X", $1}' | xxd -r > int
これは少し厄介です!
誰かがより良い方法を知っていますか?
少し簡単な方法は次のとおりです。
printf "0: %08X" 1234 | xxd -r > int
わかりました、マーク・ウィリアムズがうまくいかなかったようです。彼の回答の修正版を投稿します
echo 1234 | perl -e 'print pack("N", <STDIN>); > int
これは私のシステムで同じ出力を生成するように見えます。必ず確認してくださいperldoc -f pack
。
echo '1234' | perl -e 'print pack("nn", 0,<STDIN>);' > int