head
या जैसी कमांड का उपयोग करने के साथ मुख्य समस्याtail
कि वे लाइन उन्मुख होते हैं और बाइनरी फ़ाइलें नहीं हैं। यदि उनके पास नई लाइनें हैं, तो उन्हें अक्सर एक पंक्ति के अंत का प्रतिनिधित्व करने के लिए उपयोग नहीं किया जा रहा है और यदि वे हैं, तो वे प्रोग्राम संदेश या डेटा फ़ील्ड जैसे स्ट्रिंग्स का हिस्सा हो सकते हैं।
यदि डेटा किसी भी तरह से संरचित है, तो आपको विभाजन बिंदुओं को चुनने में ध्यान रखना होगा ताकि आप बीच में संरचनाओं को न तोड़ें।
यदि आप फ़ाइल की संरचना जानते हैं, तो आप एक कमांड का उपयोग कर सकते हैं जैसे कि
dd -if input-file -of output-file ...
विकल्पों के साथ केवल एक विशिष्ट आकार के डेटा के इतने सारे खंडों को कॉपी करना (विशेष रूप से बढ़ा हुआ) फ़ाइल में ऑफसेट करना।
ऐसा लगता है कि split
जैसा कि @egmont द्वारा उल्लिखित कमांड आपके लिए इस प्रक्रिया को स्वचालित करेगा, लेकिन यह डिफ़ॉल्ट रूप से लाइन-ओरिएंटेड प्रतीत होता है, इसलिए आपको अतिरिक्त विकल्प निर्दिष्ट करना होगा जैसे --bytes count
कि यह बताना है कि फ़ाइल का प्रत्येक टुकड़ा कितना बड़ा होना चाहिए हो।
एक साइड नोट के रूप में, यदि आप नहीं जानते कि एक फाइल में क्या है, लेकिन संदेह है कि इसमें कम से कम कुछ सार्थक पाठ्य डेटा शामिल हैं, तो strings
कमांड यह देखने का एक शानदार तरीका है कि आप क्या काम कर रहे हैं।
strings -n 6 file | less
प्रिंट करने योग्य पात्रों के सभी रन कम से कम छह वर्णों के मिलेंगे और उन्हें एक पेजर में प्रदर्शित किया जाएगा ताकि वे टर्मिनल पर उड़ान न भर सकें। 4 वर्णों के डिफ़ॉल्ट से थोड़ी बड़ी संख्या का उपयोग करने से डेटा के छोटे स्निपेट को समाप्त करने में मदद मिलती है जो कि केवल प्रिंट करने योग्य होते हैं, लेकिन फ़ाइल में उस तरह से उपयोग नहीं किए जा रहे हैं।
यदि आपको बाद में द्विआधारी संपादक जैसे अधिक विस्तार से फ़ाइल का पता लगाना है hexedit
देखना है, तो आपके पास कुछ ऐसे स्थान होंगे जो इंगित करते हैं कि कुछ दिलचस्प मिल सकता है।
strings
एक विकल्प है - t x
जो प्रत्येक मुद्रित स्ट्रिंग को हेक्साडेसिमल (ओ के लिए ओ में ओसेल / डी के लिए फ़ाइल में) के साथ प्रत्येक मुद्रित स्ट्रिंग को पूर्ववर्ती कर देगा, ताकि आप जान सकें कि बाद में इसे कहां खोजना है। यहां तक कि बहुत कम फाइलें बहुत से निपटने के लिए हैं जब आपको उन्हें चरित्र द्वारा चरित्र को देखना होगा।
split
कमान पर एक नजर डालें ।