बड़ी फ़ाइलों को छोटे भागों में कैसे विभाजित करें?


189

मेरे पास एक बड़ी फाइल है (उदाहरण के लिए 8 जीबी)। मैं इसे कई भागों में कैसे विभाजित कर सकता हूं, मान लीजिए कि 3 बराबर भाग हैं, और उसके बाद मैं उन्हें बाद में कैसे एकीकृत करूं?


इस का डुप्लिकेट हो रहा है askubuntu.com/questions/12172/...
जो-Erlend Schinstad

क्या आपको यकीन है "यह प्रतीत होता है" ?. बिल्ली, यह एक ही सटीक बात है। सिवाय यहाँ अब एक बोनस के साथ है "अधिक उदाहरण और विकल्प।"
लुइस अल्वाराडो

यदि आप इसे विभाजित करना चाहते हैं, और क्या आप इसे बाइट सबस्ट्रिंग्स में विभाजित करना चाहते हैं या क्या आप किसी भी तरह की त्रुटि जाँच या लेबलिंग में लिपटे हुए हैं, चाहे आप इसे विभाजित करना चाहते हैं, इसके बारे में अधिक कहने में मदद मिल सकती है। अगर इसे छोटे मीडिया पर या नेटवर्क ट्रांसफ़र के लिए रखा जाए तो मुझे कुछ ऐसा ही लगेगा
पूली


एन द्वारा समान रूप से विभाजित करने के लिए एक लाइनर: (1.) लाइनों से विभाजित विभाजन --lines $ (($ (wc -l <$ {your_filename}) / $ {N}) $ {your_filename} (2.) द्वारा विभाजित बाइट्स स्प्लिट - बाइट्स $ (($ (wc -c <$ {your_filename}) / $ {N})) $ {your_filename}
ट्रेवर बॉयड स्मिथ

जवाबों:


272

इसे पूरा करने के कई तरीके हैं। आइए बुनियादी लोगों के साथ शुरू करें।

स्प्लिट और कैट कमांड का उपयोग करना :

कहते हैं, मेरी एक छवि है और इसकी बहुत बड़ी (10MB) है। सब मैं है:

split --bytes=1M /path/to/image/image.jpg /path/to/image/prefixForNewImagePieces

और फिर इसे एक साथ रखने के लिए मैं बिल्ली का उपयोग करता हूं:

cat prefixFiles* > newimage.jpg

उदाहरण के लिए:

उस फ़ोल्डर के अंदर मान लें जहां छवि है:

split --bytes=1M myimage.jpg new

यदि छवि एक निर्देशिका के अंदर होती है, जिसे चित्र कहा जाता है, तो आप यह भी कर सकते हैं:

split --bytes=1M images/myimage.jpg new

यदि छवि डायरेक्टरी / होम / साइरेक्स / इमेज के अंदर है तो आप ऐसा कर सकते हैं:

split --bytes=1M /home/cyrex/images/myimage.jpg new

(सभी मामलों से ऊपर इसे विभाजित होगा myimage.jpg1 एमबी टुकड़ों में और शब्द नए के साथ टुकड़े का नाम लगा दें। तो वे कैसा दिखेगा newaa, newab, newac, newad...)

यदि आप एक टेक्स्ट फ़ाइल को विभाजित कर रहे हैं और इसे लाइनों द्वारा विभाजित करना चाहते हैं तो आप ऐसा कर सकते हैं:

split -l 1000 book.txt new

जो टेक्स्ट फाइल को 1000 लाइनों की आउटपुट फाइलों में विभाजित करेगा। यह एक फ़ाइल को विभाजित करने का एक और तरीका है और इसका उपयोग ज्यादातर पाठ फ़ाइलों जैसे लॉग्स, एसक्यूएल डंप्स, सीएसवी फाइल आदि के लिए किया जाता है।

फिर मैंने उन्हें मर्ज कर दिया

cat new* > newimage.jpg

ये एक तरीका है। तुम भी विभाजित टुकड़ों का आकार बदल सकते हैं। बस उस हिस्से को बदलें जो 1 किलोबाइट या 1G के लिए गीगा के लिए कहता --bytes=1Mहै --bytes=1K, या --bytes=4K4KB टुकड़ों के लिए एक और नंबर की तरह ।

नॉटिलस का उपयोग करना

एक अन्य तरीका Nautilus के gui में कॉम्प्रेस विकल्प है। यह आपको उस फ़ाइल या फ़ाइलों को विभाजित करने का एक विकल्प देता है जिसे आप छोटे मेगाबाइट आकारों में संपीड़ित करना चाहते हैं। इसका सरल और आसान है।

फिर भी एक और तरीका 7z का उपयोग कर रहा है

मान लें कि आपके पास एक ISO छवि है जिसे ubuntu.isoआप ऐसा कर सकते हैं:

7z a -v5m -mx0 ubuntu.7z ubuntu.iso

इससे 5MB साइज की फाइल बनाई जाएगी ubuntu.iso-v5mमात्रा आकार ताकि आप 10, 12, 1, 3 को बदल सकते हैं और यह भी मीटर, किलोबाइट के लिए k करने के लिए आदि बदला जा सकता है; -mx0स्विच बताता 7-Zip, कोई संपीड़न का उपयोग कि है, बस भागों में डेटा को विभाजित करने के लिए।

सिर्फ निकालने के लिए

7z x ubuntu.7z.001

इस तरह आप पहली फ़ाइल को निकालते हैं और 7z क्रम में निम्नलिखित फाइलों से निकालना शुरू करते हैं। आप भी कर सकते हैं

7z e ubuntu.7z.001

जिसका यहाँ भी वही प्रभाव है।


2
इसमें रार शामिल नहीं थी क्योंकि अभी तक खुला स्रोत नहीं है (जहां तक ​​मुझे पता है) और टार को नहीं जोड़ा क्योंकि मैं विभाजन करने के आसान तरीकों की तलाश कर रहा था।
लुइस अल्वारादो

साथ ही gzip जोड़ें - 7zip को
बजे

जो मुझे पता है उसके लिए, Gzip (जैसे टार) के पास संपीड़ित फ़ाइल को विभाजित करने का एक आसान विकल्प नहीं है। सभी मामलों में मैंने उन्हें कंप्रेस्ड फाइल को "स्प्लिट" करने के लिए स्प्लिट कमांड का उपयोग करते हुए देखा है। तो यह एक आदेश नहीं होगा, बल्कि एक एकल उद्देश्य को प्राप्त करने के लिए आदेशों का एक समूह होगा जो विभाजन या 7z जैसे एकल के साथ किया जा सकता है। 7Zip की स्थापना के लिए (जो कि p7zip-full पैकेज का p7zip है) यह iirc के लिए कभी नहीं पूछा है;)।
लुइस अल्वारादो

पाठ फ़ाइलों का विभाजन जोड़ा गया। उस के बारे में भूल गए और आज यह बस इतना हुआ कि मुझे CSV फ़ाइलों के एक जोड़े को विभाजित करने की आवश्यकता थी। यह उन डंपों के लिए है जिन्हें आपको विशिष्ट मात्रा में लाइनों की आवश्यकता है।
लुइस अल्वारादो

10

split -bउपयुक्त संख्या का उपयोग करके , आप तीन टुकड़े प्राप्त कर सकते हैं।

संख्या हो सकती है:

size=$(wc -c <"file name")
one_third=$((size/3+1))

आश्वस्त करने के लिए, बिल्ली का उपयोग करें

cat "file name"* > "file name"

मैनुअल पेज विवरण भरने में मदद करेंगे।


1
आप अपने लिए फ़ाइलों की संख्या की गणना split --numberकरने के लिए भी उपयोग कर सकते splitहैं: askubuntu.com/questions/54579/…
Ciro Santilli Sant let let let

4

HJSplit

फ़ाइलों को विभाजित करने और पुन: संयोजन करने के लिए एक लोकप्रिय फ्रीवेयर प्रोग्राम है। कार्यक्रम विंडोज, लिनक्स और कई अन्य प्लेटफार्मों पर उपलब्ध है।

लिनक्स के लिए HJSplit पूर्ण ग्राफिकल यूजर-इंटरफेस के साथ लिनक्स के लिए एक फ्रीवेयर फ़ाइल फाड़नेवाला है। HJSplit 100 गीगाबाइट्स, स्प्लिट, जॉइन / रिकॉम्बिन, एमडी 5 चेकसम, फाइल-तुलना, "रन विदाउट इंस्टॉल" के फाइल साइज को सपोर्ट करता है और प्रोग्राम पूरी तरह से पोर्टेबल है।

लिनक्स के लिए HJSplit को स्थापित करने की आवश्यकता नहीं है और यह किसी विशेष पुस्तकालयों पर निर्भर नहीं करता है। बस अपनी पसंद की एक निर्देशिका में hjsplitlx.tar.gz संग्रह को निकालें और लिनक्स फ़ाइल प्रबंधक या टर्मिनल विंडो से प्रोग्राम शुरू करें। आपको प्रोग्राम की फ़ाइल अनुमतियों को 'निष्पादन योग्य' में समायोजित करने की आवश्यकता हो सकती है।

यहां छवि विवरण दर्ज करें


1
मुझे यह कहना चाहिए कि विंडोज फ़ाइल लिनक्स पर भी काम करती है।
उरी हरेरा

2
इस तरह से एक कार्यक्रम में जाने से पहले फ़ाइल को विभाजित / जोड़ देने के कई तरीके हैं। मैं इसके बजाय शक्तिशाली विकल्पों का उपयोग करता हूं जो लिनक्स प्रदान करता है और फाइलों को विभाजित / विलय करने के लिए इसमें कुछ बहुत तेज, सुरक्षित तरीके हैं।
लुइस अल्वारादो

3
यह सुरक्षित, तेज़, और क्रॉस-प्लेटफ़ॉर्म है जिसमें LINUX शामिल है, यह एक विन्डोज़-केवल एप्लिकेशन नहीं है जो सिर्फ लिनक्स में चलने के लिए होता है ...
Uri Herrera

2
मैं HJSplit का उपयोग करता हूं, यह बहुत अच्छा और सरल है। जब आप बस टेक्स्ट बॉक्स में पैरामीटर मान भर सकते हैं, तो कमांड और पैरामीटर नाम टाइप करने की आवश्यकता नहीं है।
मैथ्यू पढ़ें

2
और एक मुफ्त डाउनलोड किया जा रहा है क्योंकि यह बदतर है? और क्या मुझे यह कहना चाहिए कि अब ओप इन एएस में मुफ़्त सॉफ़्टवेयर के लिए कहो (जो यह है, यह मुफ़्त है) और जिसे आप संदर्भित कर रहे हैं उसे ओपेन कहा जाता है, जिसे आप जानते हैं।
उड़ी हेरेरा

4

सूक्ति विभाजित? http://gnome-split.org/

गनोम स्प्लिट एक उपकरण है जो आपको फाइलों को विभाजित करने और उन्हें वापस मर्ज करने की अनुमति देता है। यह जावा में लिखा गया है और GTK + यूजर इंटरफेस (java-gnome प्रोजेक्ट के लिए धन्यवाद) का उपयोग करता है। लक्ष्य समान परियोजनाओं के मूल कार्यान्वयन की पेशकश करना है जो कई फ़ाइल स्वरूपों (जैसे Xtremsplit) को संभाल सकता है।

http://www.omgubuntu.co.uk/2010/08/split-large-files-easily-in-ubuntu-with-gnome-split/


3

HOZ - Hacha Open Zource v1.65 - http://hoz.sourceforge.net/

यहां छवि विवरण दर्ज करें

डेवलपर से:

OZ वह है जिसे आप 'फ़ाइल स्प्लिटर' कहेंगे। इसका फ़ाइल प्रारूप 'हचा' सॉफ्टवेयर द्वारा उपयोग किया जाने वाला एक ही है, जो स्पेन और लेटामेरिका में एक प्रसिद्ध स्प्लिटर है। HOZ 'Hacha' संगत फाड़नेवाला का एक खुला स्रोत और पोर्टेबल सी कार्यान्वयन है।

HOZ 'Hacha' की तुलना में छोटा और तेज़ है।

btw, मैंने 'Zource' में 'S' के 'Z' isntead का इस्तेमाल किया क्योंकि 'hoz' स्पेनिश में 'सिकल' है, और चूंकि 'hacha' 'ax' के लिए स्पेनिश शब्द है ...

स्थापित करने के बाद, आप ghozटर्मिनल में ड्रॉप करके Hoz GUI का उपयोग कर सकते हैं । ऑपरेशन इतना सरल है कि स्पष्टीकरण की आवश्यकता नहीं है, लेकिन आगे की जानकारी डेवलपर की साइट पर पहुंच सकती है।

सौभाग्य!


0

लकड़हारा

जावा में विकसित एक मुफ्त फ़ाइल विभाजन और मर्ज उपयोगिता। यह एक छोटे आकार का अनुप्रयोग है जो उपयोगकर्ता को KB, MB या GB में किसी भी प्रकार की फ़ाइल को छोटे आकार में विभाजित करने की अनुमति देता है।

यह लिनक्स के साथ-साथ विंडोज के लिए भी उपलब्ध है।

वुडकार्ट मूल फ़ाइलों को वापस मर्ज करने के 3 तरीके प्रदान करता है। वुडकटर एक मर्ज फ़ाइल बनाता है जिसे वुडकटर एप्लिकेशन द्वारा सभी फाइलों में वापस शामिल होने के लिए संसाधित किया जा सकता है। यदि विभाजित फ़ाइलों के रिसीवर में वुडकार्ट स्थापित नहीं है, तो मूल फ़ाइल भी प्राप्त की जा सकती है क्योंकि वुडकार्ट एक बैच फ़ाइल और फ़ाइलों को वापस मर्ज करने के लिए शेल स्क्रिप्ट फ़ाइल भी बनाता है। बैच फ़ाइल का उपयोग विंडोज प्लेटफ़ॉर्म में किया जाएगा और शैल स्क्रिप्ट का उपयोग लिनक्स प्लेटफार्मों में किया जाएगा।

http://java-puzzle.blogspot.com/2009/07/woodcutter.html


2
लाइसेंस "फ्रीवेयर है।" मुझे लगता है कि एक फ्री सॉफ्टवेयर टूल जो कि रिपोज में है, एक बेहतर उपाय है।
Broam

0

split --number

यह पिछले आकार को छोड़कर एक ही आकार के साथ एन फ़ाइलों को उत्पन्न करने के लिए एक अच्छा विकल्प है, जो कि अविभाज्यता के कारण बड़ा हो सकता है। उदाहरण के लिए:

printf '0123456789' > f.txt
split -d --number 2 f.txt f.txt.part.
tail f.txt.part.*

देता है:

==> f.txt.part.00 <==
01234
==> f.txt.part.01 <==
56789

तथा:

split -d --number 3 f.txt f.txt.part.
tail f.txt.part.*

देता है:

==> f.txt.part.00 <==
012
==> f.txt.part.01 <==
345
==> f.txt.part.02 <==
6789

-b+ स्पष्ट आकार गणना की तुलना में , जिसका उल्लेख यहां किया गया था: https://askubuntu.com/a/54584/52975 , अंतिम फ़ाइल पिछले वाले की तुलना में लगभग 2x बड़ी हो सकती है, जो कभी-कभी इस विकल्प के लिए एक नकारात्मक पहलू है। हालाँकि यह कई बार अधिक सुविधाजनक होता है, क्योंकि आपको आकार की गणना स्वयं नहीं करनी होती है।

लाइनों की समान संख्या पूछी गई: https://stackoverflow.com/questions/2016894/how-to-split-a-large-text-file-into-smaller-files-with-equal-number-of-lines

split2.28, उबंटू 18.04 में परीक्षण किया गया ।

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