ছোট ফাইলগুলিতে বড় ফাইলগুলি কীভাবে বিভক্ত করবেন?


189

আমার কাছে একটি বড় ফাইল রয়েছে (উদাহরণের জন্য 8 জিবি)। আমি কীভাবে এটি একাধিক অংশে বিভক্ত করতে পারি, আসুন তিনটি সমান অংশ বলি এবং তারপরে আমি কীভাবে পরে সেগুলিকে সংহত করব?



আপনি কি নিশ্চিত যে "এটি মনে হচ্ছে" ?. মুরগি, এটা ঠিক একই জিনিস। এখানে বাদে এখন "আরও উদাহরণ এবং বিকল্প" এর বোনাস রয়েছে।
লুইস আলভারাডো

আপনি কেন এটিকে বিভক্ত করতে চান এবং আপনি এটি কেবল বাইট সাবস্ট্রিংগুলিতে বিভক্ত করতে চান বা কোনও ধরণের ত্রুটি পরীক্ষা বা লেবেল লাগিয়ে দেওয়ার জন্য আপনি উন্মুক্ত কিনা সে বিষয়ে আপনি যদি আরও কিছু বলেন তবে এটি সাহায্য করতে পারে। এই ছোট মিডিয়ায় বা নেটওয়ার্ক স্থানান্তর জন্য এটা করা হয়, তাহলে আমি ভালো কিছু তাকান চাই par2
পুলি


N দ্বারা সমানভাবে বিভক্ত হওয়ার জন্য একটি লাইনার (1) লাইনগুলি বিভক্ত - লাইনেস $ (($ (ডাব্লুসিটি-এল <$ {আপনার_ফিলামনাম}) / $ {এন})) {{আপনার_ফিলামনাম} (২) দ্বারা বিভক্ত বাইটস বিভাজন - বাইটস $ (($ (ডাব্লুসিসি -সি <$ {আপনার_ফিলামান নাম}) / {{এন})) $ {আপনার_ফিলনাম}
ট্রেভর বয়েড স্মিথ

উত্তর:


272

এটি সম্পাদন করার বিভিন্ন উপায় রয়েছে। আসল প্রাথমিকগুলি দিয়ে শুরু করা যাক।

বিভক্তকরণ এবং বিড়াল কমান্ড ব্যবহার করে :

আসুন বলুন যে আমার কাছে একটি চিত্র রয়েছে এবং এটি খুব বড় (10 এমবি)) আমি যা করি তা হ'ল:

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.jpg1MB টুকরো এবং শব্দ নতুন টুকরা অনুসর্গ। তাই তারা মত দেখাবে newaa, newab, newac, newad...)

আপনি যদি কোনও পাঠ্য ফাইল বিভক্ত করে থাকেন এবং লাইন দ্বারা এটি বিভক্ত করতে চান আপনি এটি করতে পারেন:

split -l 1000 book.txt new

যা প্রতিটি 1000 লাইনের আউটপুট ফাইলগুলিতে পাঠ্য ফাইলকে বিভক্ত করবে। এটি কোনও ফাইলকে বিভক্ত করার আরেকটি উপায় এবং লোগো, এসকিএল ডাম্পস, সিএসভি ফাইল ইত্যাদির মতো পাঠ্য ফাইলের জন্য ব্যবহৃত হয় ..

তারপর আমি তাদের একীভূত

cat new* > newimage.jpg

এটি এক উপায়। আপনি বিভক্ত টুকরা আকার পরিবর্তন করতে পারেন। 1 কিলোবাইট বা 1 জিগা বা গিগা জন্য 1 জি, বা 4KB টুকরা এর মতো অন্য একটি নম্বর হিসাবে যে অংশটি বলে --bytes=1Mতা কেবল পরিবর্তন করুন ।--bytes=1K--bytes=4K

নটিলাস ব্যবহার করা

আরেকটি উপায় হ'ল নটিলাসের গুইতে সংকোচন বিকল্প। এটি আপনাকে যে ফাইল বা ফাইলগুলি ছোট মেগাবাইট আকারে সংকুচিত করতে চান তা বিভক্ত করার একটি বিকল্প দেয়। এটি সহজ এবং সহজ।

তবুও অন্য উপায় 7z ব্যবহার করা হয়

ধরে নিই আপনার কাছে একটি আইএসও চিত্র রয়েছে যা 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
আরআরটি অন্তর্ভুক্ত করেনি যেহেতু এখনও উন্মুক্ত উত্স নয় (যতদূর আমি জানি) এবং টর যোগ করেনি যেহেতু আমি বিভক্ত করার সহজ উপায়গুলি খুঁজছিলাম।
লুইস আলভারাডো


আমি যা জানি, তার জন্য জিজিপ (ট্যারের মতো) সংকোচিত ফাইলটি বিভক্ত করার সহজ বিকল্প নেই। সমস্ত ক্ষেত্রে আমি তাদের স্প্রেড কমান্ডটি কমপ্রেস ফাইলটিকে "বিভক্ত" করতে ব্যবহার করতে দেখেছি। সুতরাং এটি কমান্ড নয় বরং একক উদ্দেশ্য অর্জনের জন্য একটি গোষ্ঠী যা বিভক্ত বা 7z এর মতো একক দ্বারা সম্পন্ন হতে পারে achieve 7 জিপ (যা p7zip- পূর্ণ প্যাকেজের p7zip) স্থাপনের জন্য এটি কখনই আমাকে iirc জিজ্ঞাসা করেনি;)।
লুইস আলভারাদো

পাঠ্য ফাইলগুলির বিভক্তকরণ যুক্ত হয়েছে। সে সম্পর্কে ভুলে গেছি এবং আজ ঠিক তাই ঘটেছে আমার কয়েকটি সিএসভি ফাইল বিভক্ত করা দরকার। এটি সেই ডাম্পগুলির জন্য যা আপনার নির্দিষ্ট পরিমাণের লাইনের হওয়া দরকার।
লুইস আলভারাডো

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

4

HJSplit

ফাইলগুলি বিভক্ত এবং পুনরায় সংযুক্ত করার জন্য একটি জনপ্রিয় ফ্রিওয়্যার প্রোগ্রাম। প্রোগ্রামটি উইন্ডোজ, লিনাক্স এবং বিভিন্ন প্ল্যাটফর্মে উপলব্ধ।

লিনাক্সের জন্য এইচজেএসপ্লিট সম্পূর্ণ গ্রাফিকাল ইউজার-ইন্টারফেস সহ লিনাক্সের জন্য একটি ফ্রিওয়্যার ফাইল স্প্লিটার। এইচজেএসপ্লিট 100 টিরও বেশি গিগাবাইট, স্প্লিট, জয়েন / রিকম্বাইন, এমডি 5 চেকসাম, ফাইল-তুলনা, "ইনস্টল ব্যতীত রান" ফাইল ফাইল আকার সমর্থন করে এবং প্রোগ্রামটি সম্পূর্ণ পোর্টেবল।

লিনাক্সের জন্য এইচজেএসপ্লিট ইনস্টল করার দরকার নেই এবং এটি কোনও বিশেষ লাইব্রেরির উপর নির্ভর করে না। আপনার পছন্দসই ডিরেক্টরিতে hjsplitlx.tar.gz সংরক্ষণাগারটি কেবল এক্সট্রাক্ট করুন এবং লিনাক্স ফাইল ম্যানেজার বা টার্মিনাল উইন্ডো থেকে প্রোগ্রামটি শুরু করুন। আপনার প্রোগ্রামটির ফাইল অনুমতিগুলি 'এক্সিকিউটেবল' তে সামঞ্জস্য করতে হতে পারে।

এখানে চিত্র বর্ণনা লিখুন


1
আমি অবশ্যই বলতে পারি যে উইন্ডোজ ফাইলটি লিনাক্সেও কাজ করে।
উরি হেরেরা

2
এই জাতীয় প্রোগ্রামে যাওয়ার আগে কোনও ফাইলকে বিভক্ত করার / যোগদানের বিভিন্ন উপায় রয়েছে। আমি বরং শক্তিশালী বিকল্পগুলি ব্যবহার করি যা লিনাক্স অফার করে এবং ফাইলগুলি বিভক্ত / মার্জ করার জন্য এটির বেশ কয়েকটি দ্রুত, নিরাপদ উপায় রয়েছে।
লুইস আলভারাডো

3
এটি নিরাপদ, দ্রুত, এবং লাইনাক্স অন্তর্ভুক্ত ক্রস প্ল্যাটফর্ম, এটি লিনাক্সেও চালানো ঘটে এমন একটি উইন্ডো-কেবল অ্যাপ্লিকেশন নয় ...
উরি হেরেরা

2
আমি এইচজেএসপ্লিট ব্যবহার করি, এটি দুর্দান্ত এবং সাধারণ। পাঠ্য বাক্সগুলিতে প্যারামিটারের মানগুলি পূরণ করতে পারলে কমান্ড এবং প্যারামিটারের নামগুলি টাইপ করার দরকার নেই।
ম্যাথু

2
এবং একটি ফ্রি ডাউনলোড হওয়ায় এটি আরও খারাপ করে দেয় কারণ? এবং আমি অবশ্যই বলব যে ওপিতে তিনি এখনই নিখরচায় সফটওয়ারের জন্য জিজ্ঞাসা করেন (এটি যা এটি নিখরচায়) এবং আপনি যেটিকে উল্লেখ করছেন তাকে ওপেন বলা হয়, আপনি জানেন কি তারতম্য আছে?
উরি হেরেরা

4

জিনোম বিভক্ত? http://gnome-split.org/

জিনোম স্প্লিট এমন একটি সরঞ্জাম যা আপনাকে ফাইলগুলি বিভক্ত করতে এবং সেগুলি আবার মার্জ করার অনুমতি দেয়। এটি জাভাতে লেখা এবং এটি জিটিকে + ইউজার ইন্টারফেস ব্যবহার করে (জাভা-জিনোম প্রকল্পের জন্য ধন্যবাদ)। লক্ষ্যটি হ'ল অনুরূপ প্রকল্পগুলির একটি স্থানীয় প্রয়োগের প্রস্তাব যা একাধিক ফাইল ফর্ম্যাটগুলি পরিচালনা করতে পারে (যেমন এক্সট্রেমস্প্লিট)।

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


3

HOZ - হাচা ওপেন জورس উত্স v1.65 - http://hoz.sourceforge.net/

এখানে চিত্র বর্ণনা লিখুন

বিকাশকারী থেকে:

ওজেড হ'ল আপনি 'ফাইল স্প্লিটার' বলবেন। এর ফাইল ফর্ম্যাটটি 'হাচা' সফটওয়্যার দ্বারা ব্যবহৃত একটির মতোই, স্পেন এবং লাতিনামেরিকার একটি বিখ্যাত স্প্লিটার। এইচওজেড একটি 'হাচা' সামঞ্জস্যপূর্ণ স্প্লিটারের একটি ওপেন সোর্স এবং পোর্টেবল সি বাস্তবায়ন।

HOZ 'হাছা' এর চেয়ে ছোট এবং দ্রুত।

বিটিডব্লু, আমি 'জোরসোর্স'-এ' এস 'এর' জেড 'বিস্তৃত ব্যবহার করেছি কারণ' হজ 'স্প্যানিশ ভাষায়' সিকেল ', এবং যেহেতু' হাচা '' কুড়াল 'এর স্প্যানিশ শব্দ ...

ইনস্টল করার পরে, আপনি ghozটার্মিনালটিতে ফেলে হজ জিআইআই ব্যবহার করতে পারেন । অপারেশনটি এত সহজ যে কোনও ব্যাখ্যাের প্রয়োজন নেই তবে বিকাশকারীর সাইটে আরও তথ্য পৌঁছে যেতে পারে।

শুভকামনা!


0

কাঠুরিয়া

জাভাতে একটি ফ্রি ফাইল স্প্লিট এবং মার্জ ইউটিলিটি বিকাশিত। এটি একটি ছোট আকারের অ্যাপ্লিকেশন যা কোনও ব্যবহারকারীকে কেবি, এমবি বা জিবিতে যে কোনও ধরণের ফাইলকে ছোট আকারে বিভক্ত করতে দেয়।

এটি লিনাক্সের পাশাপাশি উইন্ডোজের জন্যও উপলব্ধ।

উডকুটার মূল ফাইলগুলিকে আবার মার্জ করার 3 উপায় সরবরাহ করে। উডক্টার একটি মার্জ ফাইল তৈরি করে যা উডক্টার অ্যাপ্লিকেশন দ্বারা সমস্ত ফাইলগুলিতে ফিরে আসার জন্য প্রক্রিয়া করা যায়। যদি বিভক্ত ফাইলগুলির রিসিভারে উডকুটার ইনস্টল না থাকে তবে মূল ফাইলটিও পাওয়া যাবে কারণ উডকুটারের ফাইলগুলি আবার একত্রিত করার জন্য একটি ব্যাচ ফাইল এবং শেল স্ক্রিপ্ট ফাইলও তৈরি করা হয়। ব্যাচ ফাইলটি উইন্ডোজ প্ল্যাটফর্মে এবং শেল স্ক্রিপ্ট লিনাক্স প্ল্যাটফর্মগুলিতে ব্যবহৃত হবে।

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


2
লাইসেন্সটি হ'ল "ফ্রিওয়্যার"। আমি মনে করি একটি নিখরচায় সফ্টওয়্যার সরঞ্জাম যা রেপোসে রয়েছে এটি একটি আরও ভাল সমাধান।
ব্রোয়াম

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

split২.২৮-তে পরীক্ষিত , উবুন্টু ১৮.০৪।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.