質問: ちょっとしたバイナリファイルが必要なときは`echo -n -e`で作っていますが、もっと楽にできる方法をご存じないでしょうか。 既に存在するバイナリファイルの変更は、odの結果をgawkで`echo`形式に加工してbashに渡していますが、新規に作るときが悩ましいです。余裕があればプログラムを書いて作っていますが、もっと手軽にできる方法を探しています。 **バイナリファイルを作る元の表現形式** * 内容はランダムでよい * 値は指定したい(16進数だけでも可、できれば文字列、10進数、16進数の混在が指定できるとなお良い) **実行環境** WSLを含むUnix系の環境
回答: 自己回答です。hidezzzさんの回答の方法を参考にしてでバイナリファイルを作ることにしました。どうもありがとうございました。 perlの演算が使えるので結構自由度が大きいです。 perlのpackに詳しくないので、perlの良さがアピールできていませんが、実行例も書いておきました。 【コード】 qqq.sh ``` #!/bin/bash while read x y do printf "%s\n" 'print pack( "'${x}'", '${y}' );' done | perl ``` 【実行例】 ``` ./qqq.sh | od -Ax -x --endian=big l 0x1234 A3 ABC l (8*9) ``` 【実行結果】 ``` 000000 3412 0000 4142 4348 0000 0000 00000b ```