Saya ambisius mencoba menerjemahkan kode c ++ ke bash karena berbagai alasan.
Kode ini membaca dan memanipulasi tipe file khusus untuk sub-bidang saya yang ditulis dan terstruktur sepenuhnya dalam biner. Tugas saya yang berhubungan dengan biner pertama adalah menyalin 988 byte pertama dari header, persis apa adanya, dan memasukkannya ke dalam file output yang saya dapat terus menulis ketika saya menghasilkan sisa informasi.
Saya cukup yakin bahwa solusi saya saat ini tidak berfungsi, dan secara realistis saya belum menemukan cara yang baik untuk menentukan ini. Jadi, bahkan jika itu benar-benar ditulis dengan benar, saya perlu tahu bagaimana saya akan menguji ini untuk memastikan!
Inilah yang sedang saya lakukan sekarang:
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
Jika saya menggunakan hexdump / xxd untuk memeriksa bagian file ini, walaupun saya tidak bisa membaca sebagian besar, ada sesuatu yang salah. Dan kode yang saya tulis sebagai perbandingan hanya memberi tahu saya jika dua string identik, bukan jika mereka disalin seperti yang saya inginkan.
Apakah ada cara yang lebih baik untuk melakukan ini di bash? Bisakah saya cukup menyalin / membaca byte biner dalam native-binary, untuk menyalin ke file kata demi kata? (dan idealnya untuk menyimpan sebagai variabel juga).
dd
untuk menyalin masing-masing byte (mengaturnyacount
untuk1
). Saya tidak yakin tentang menyimpannya.