ฉันพยายามแปลรหัส 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 เพื่อดูส่วนนี้ของไฟล์แม้ว่าฉันจะไม่สามารถอ่านได้เกือบทั้งหมด แต่ดูเหมือนว่ามีบางอย่างผิดปกติ และรหัสที่ฉันเขียนเพื่อเปรียบเทียบจะบอกฉันว่าสองสายเหมือนกันไม่ใช่ถ้าพวกเขาถูกคัดลอกในแบบที่ฉันต้องการ
มีวิธีที่ดีกว่านี้ในการทุบตี? ฉันสามารถคัดลอก / อ่านไบนารีไบท์ในเนทีฟไบนารี่เพื่อคัดลอกไปยังไฟล์คำต่อคำได้หรือไม่? (และเหมาะสำหรับการจัดเก็บเป็นตัวแปรเช่นกัน)
dd
เพื่อคัดลอกไบต์ของแต่ละบุคคล (การตั้งค่าของมันcount
ไป1
) ฉันไม่แน่ใจเกี่ยวกับการจัดเก็บพวกเขาแม้ว่า