मैं किसी बड़ी फ़ाइल को कैसे संपादित कर सकता हूँ?


18

मेरे पास कुछ फ़ाइलें हैं> 1 GB प्रत्येक। मुझे फ़ाइलों से अंतिम कुछ बाइट्स निकालने की आवश्यकता है। मैं यह कैसे कर सकता हूं? मैं डिस्क स्थान को बचाने के लिए फ़ाइल को संपादित करना पसंद करता हूं।

मैं एचपी-यूएक्स पर हूं।


मुझे लगता vimहै कि 4 जी की सीमा है (गलत हो सकती है), लेकिन मुझे नहीं लगता कि यह जगह में है (गलत हो सकता है)।
xenoterracide 11

1
@xenoterracide: मेरे पास यहाँ vim नहीं है :-( और vi "Tmp फ़ाइल को बहुत बड़ी" त्रुटि देता है।
हेमंत

1
@ हर्नेंट: यह संदेश आपको बताता है कि आपको जगह में संपादन के बारे में जानने की ज़रूरत है: vi काम करने के लिए इसे / tmp पर कॉपी करने की कोशिश कर रहा है। मुझे लगता है कि vim वही काम करेगा, और यह उसी डायरेक्टरी में बैकअप बनाना पसंद करता है।
डेविड थॉर्नले

जवाबों:


10

हेक्सेडिट का उपयोग करने की कोशिश करें मैंने इसे एचपी-यूएक्स पर कोशिश नहीं की है, लेकिन यह काम करना चाहिए। यह आपको एक फ़ाइल में एक स्थान पर जाने और छंटनी करने की अनुमति देता है। मुझे पूरा यकीन है कि यह पूरी फाइल नहीं पढ़ता है, लेकिन सिर्फ प्रदर्शन के लिए उपयुक्त स्थान की तलाश करता है।

उपयोग काफी सरल है एक बार जब आप इसे लॉन्च करते हैं तो तीर कुंजियाँ आपको घूमने की अनुमति देती हैं। F1 मदद देता है। Ctrl-G फ़ाइल में किसी स्थान पर जाता है (संकेत: प्रदर्शन की निचली पंक्ति से फ़ाइल के आकार का उपयोग करने के लिए स्थानांतरित करने के लिए)। पहले बाइट पर कर्सर रखें जिसे आप छोटा करना चाहते हैं और उसके बाद एस्केप टी दबाएं एक बार पुष्टि करें कि ट्रंकट हो चुका होगा। Ctrl-x बाहर निकलता है।



6

आप उदाहरण के लिए dd का उपयोग कर सकते हैं:

dd if=yourfile of=outname bs=4k count=thefirstX4kb

1
आपके प्रतिक्रिया के लिए धन्येवाद। मैं डिस्क स्थान को बचाने के लिए फ़ाइल को संपादित करना पसंद करता हूं। अगर कुछ भी मदद नहीं करता है तो मैं dd :-) का उपयोग करूंगा।
हेमंत

6

एक उपकरण का उपयोग करें जो आपको truncateसिस्टम कॉल तक पहुंच प्रदान करता है। आप इसे केवल POSIX टूल के साथ कर सकते हैं। चेतावनी, एक ब्राउज़र में टाइप किया गया; विशेष रूप से सावधान रहें क्योंकि ddसामान्य यूनिक्स कमांड की तुलना में त्रुटियों का और भी अधिक निराधार है। 123456 बाइट्स रखने की संख्या है।

dd if=/dev/null of=/file/to/truncate seek=1 bs=123456

एक पर्ल संस्करण बहुत अधिक पठनीय है:

perl -e 'truncate "$ARGV[0]", 123456 or die $!' /file/to/truncate

1

आप उपयोग कर सकते हैं splitया ed, awkया किसी भी प्रोग्रामिंग भाषा।


आपके प्रतिक्रिया के लिए धन्येवाद। मैं डिस्क स्थान और मेमोरी को बचाने के लिए जगह में फ़ाइल को संपादित करना पसंद करता हूं।
हेमंत
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.