जवाबों:
बचाव के लिए यूनिक्स कमांड का डेयरडेविल dd
!
dd if=yourfile ibs=1 skip=200 count=100
यह बाइट 200 से शुरू होती है और अगले बाइट्स में 100 या दूसरे शब्दों में, बाइट्स 200-300 को दर्शाती है। ibs
इसका मतलब है कि dd केवल 512 बाइट्स के बजाय एक बार में एक बाइट पढ़ता है, लेकिन फिर भी डिफ़ॉल्ट 512 बाइट विखंडू में लिखता है। जाओ और देखो कि क्या ibs
प्रदर्शन को नुकसान पहुँचाता है, मुझे आशा नहीं है।
आप उपयोग कर सकते हैं dd if=logfile of=pieceoflogfile skip=startingblock count=#ofblocks
(संभवतः bs=1
एक-बाइट ब्लॉक प्राप्त करने के लिए, अन्यथा यह 512 बाइट ब्लॉक का उपयोग करता है)। हालांकि एक बार में एक बाइट लिखने के लिए यह बताना कितना कुशल है, यह सुनिश्चित नहीं है।
dd
के पाइप-जंजीर एक साथ हो सकते हैं (1 वसा टुकड़ा काट सकता है और दूसरा पाइप पर ठीक काम करेगा, डिस्क नहीं), लेकिन dd
न केवल bs
अलग बल्कि ibs
और obs
साथ ही, इसलिए कम से कम यह पढ़ने की तुलना में बड़े ब्लॉक के साथ आउटपुट कर सकता है।
यह मानते हुए कि फ़ाइल बहुत बड़ी नहीं है (उदाहरण के लिए कई जीबी या तो), एक से दूसरे तक पाइपिंग करना जितना कुशल होगा, उतना कम करने के लिए अपना खुद का प्रोग्राम लिखना होगा।
head ... file | tail ...
(या आसपास का रास्ता। जो भी हो।)
time dd if=file.txt | wc -l
= 00: 00: 03s।time dd if=file.txt ibs=1 count=782090815 | wc -l
= 9:05:19