私は、無数の理由でc ++コードをbashに変換しようと野心的に取り組んでいます。
このコードは、完全にバイナリで記述および構造化されたサブフィールドに固有のファイルタイプを読み取り、操作します。最初のバイナリ関連のタスクは、ヘッダーの最初の988バイトをそのままコピーし、残りの情報を生成しながら書き込みを続けることができる出力ファイルに入れることです。
私の現在のソリューションは機能していないと確信しており、現実的にはこれを判断するための良い方法を見つけていません。したがって、実際に正しく記述されていても、これをテストする方法を確認する必要があります!
これは私が今やっていることです:
hdr_988=`head -c 988 ${inputFile}`
echo -n "${hdr_988}" > ${output_hdr}
headInput=`head -c 988 ${inputTrack} | hexdump`
headOutput=`head -c 988 ${output_hdr} | hexdump`
if [ "${headInput}" != "${headOutput}" ]; then echo "output header was not written properly. exiting. please troubleshoot."; exit 1; fi
hexdump / xxdを使用してファイルのこの部分をチェックアウトすると、ほとんどの部分を正確に読み取ることはできませんが、何かがおかしいようです。また、比較のために記述したコードは、2つの文字列が同一であるかどうかだけを示しており、希望どおりにコピーされているかどうかは示していません。
これをbashで行うより良い方法はありますか?native-binaryのバイナリバイトをそのままコピー/読み取りして、そのままファイルにコピーできますか?(そして理想的には変数としても保存すること)。
dd
、個々のバイト(その設定をコピーするcount
には1
)。ただし、それらを保存するかどうかはわかりません。