bash كيفية الحصول على أول عشرة بايت فقط من ملف ثنائي




binary (3)

أنا أكتب برنامج نصي bash يحتاج إلى الحصول على رأس (أول 10 بايت) من ملف ثم في قسم آخر الحصول على كل شيء ما عدا أول 10 بايت. هذه ملفات ثنائية ومن المحتمل أن يكون لها \0 's و \n ' s خلال البايتات العشرة الأولى. يبدو أن معظم الأدوات المساعدة تعمل مع ملفات ASCII. ما هي طريقة جيدة لتحقيق هذه المهمة؟


للحصول على أول 10 بايت ، كما هو موضح مسبقًا:

head -c 10

للحصول على كل ما عدا الـ 10 بايت الأولى (على الأقل مع tail GNU):

tail -c+11

يمكنك استخدام الأمر dd لنسخ عدد عشوائي من وحدات البايت من ملف ثنائي.

dd if=infile of=outfile1 bs=10 count=1
dd if=infile of=outfile2 bs=10 skip=1

head -c 10 يفعل الشيء الصحيح هنا.





binary