විශාල ගොනු කුඩා කොටස් වලට බෙදන්නේ කෙසේද?


200

මා සතුව විශාල ගොනුවක් ඇත (උදාහරණ සඳහා 8GB). මම එය කොටස් කිහිපයකට බෙදන්නේ කෙසේද, සමාන කොටස් 3 ක් කියමු, ඉන්පසු ඒවා පසුව ඒකාබද්ධ කරන්නේ කෙසේද?



ඔබට විශ්වාසද "මෙය පෙනේ"?. හෙක්, එය එකම දෙයයි. මෙහි හැර දැන් "තවත් උදාහරණ සහ විකල්ප" ප්‍රසාද දීමනාවක් ඇත.
ලුයිස් අල්වරාඩෝ

ඔබට එය බෙදීමට අවශ්‍ය ඇයිද යන්න සහ එය බයිට් උපස්ථර වලට බෙදීමට ඔබට අවශ්‍යද යන්න හෝ ඒවා කිසියම් ආකාරයක දෝෂ පරීක්ෂාවකට හෝ ලේබල් කිරීමකට සම්බන්ධ කර ගැනීමට ඔබ කැමතිද යන්න ගැන වැඩි යමක් පැවසුවහොත් එය උදව් වනු ඇත. මෙය කුඩා මාධ්‍යවල හෝ ජාල මාරුවීම් සඳහා නම් මම par2 වැනි දෙයක් දෙස බලමි .
පූලි


N මගින් සමානව බෙදීම සඳහා එක් ලයිනර්: (1.) රේඛා බෙදීමෙන් --lines $ (($ (wc -l <$ {your_filename}) / $ {N})) $ {your_filename} (2.) බෙදීමෙන් බයිට් බෙදීම - බයිට්ස් $ (($ (wc -c <$ {your_filename}) / $ {N})) $ {your_filename}
ට්‍රෙවර් බොයිඩ් ස්මිත්

Answers:


282

මෙය ඉටු කර ගැනීමට ක්‍රම කිහිපයක් තිබේ. මූලික ඒවා සමඟ ආරම්භ කරමු.

භාවිතා භේදය හා බළලා විධාන:

මට රූපයක් ඇති බවත් එය ඉතා විශාල බවත් (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

රූපය නාමාවලිය තුළ තිබේ නම් / home / cyrex / images ඔබට මෙය කළ හැකිය:

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

(එය ඉහත සඳහන් සියලූ නඩු බෙදී ඇත දී myimage.jpg1MB ප්රමාණය කෑලි හා නව වචනය සමග කෑලි නම උපසර්ගය. ඔවුන් වගේ බව ඒ නිසා newaa, newab, newac, newad...)

ඔබ පෙළ ගොනුවක් බෙදන්නේ නම් සහ එය රේඛා මගින් බෙදීමට අවශ්‍ය නම් ඔබට මෙය කළ හැකිය:

split -l 1000 book.txt new

එමඟින් පෙළ ගොනුව පේළි 1000 බැගින් ප්‍රතිදාන ලිපිගොනු වලට බෙදනු ඇත. මෙය ගොනුවක් බෙදීමට තවත් ක්‍රමයක් වන අතර එය බොහෝ විට භාවිතා කරනුයේ ල logs ු-සටහන්, වර්ග ඩම්ප්, සීඑස්වී ගොනු වැනි පෙළ ගොනු සඳහා ය.

එවිට මම ඒවා ඒකාබද්ධ කරමි

cat new* > newimage.jpg

මෙය එක් ක්‍රමයකි. බෙදුණු කැබලිවල ප්‍රමාණය පවා ඔබට වෙනස් කළ හැකිය. හුදෙක් සඳහන් වන කොටසක් වෙනස් --bytes=1Mකිරීමට --bytes=1Kgiga 1 kilobyte හෝ 1g සඳහා, හෝ වැනි තවත් අංකය --bytes=4Kකෑලි 4KB සඳහා.

නාටිලස් භාවිතා කිරීම

තවත් ක්‍රමයක් වන්නේ නාටිලස්ගේ ගුයි හි සම්පීඩන විකල්පයයි. කුඩා මෙගාබයිට් ප්‍රමාණයකට සම්පීඩනය කිරීමට අවශ්‍ය ගොනුව හෝ ගොනු බෙදීමට එය ඔබට විකල්පයක් ලබා දෙයි. එහි සරල හා පහසුය.

තවත් ක්‍රමයක් වන්නේ 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- පූර්ණ පැකේජයේ p7zip වේ) එය කිසි විටෙකත් මාගෙන් iirc ඉල්ලුවේ නැත;).
ලුයිස් අල්වරාඩෝ

පෙළ ගොනු බෙදීම එකතු කරන ලදි. ඒ ගැන අමතක වූ අතර අද එය එසේ වූයේ මට CSV ලිපිගොනු කිහිපයක් බෙදීමට අවශ්‍ය විය. මෙය ඔබට නිශ්චිත රේඛා ප්‍රමාණයක් තිබිය යුතු ඩම්ප් සඳහා ය.
ලුයිස් අල්වරාඩෝ

7z භාවිතා කරන විට මඟ -mx0හැරීම මඟින් ගොනුව බෙදීම වෙනුවට පෙරනිමි සැකසුම සමඟ සම්පීඩනය කරන්න.
Adi Prasetyo

9

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/…
සීරෝ සැන්ටිලි 冠状 冠状 冠状 六四 事件 法轮功

3

Gnome භේදය? http://gnome-split.org/

GNOME Split යනු ලිපිගොනු බෙදීමට සහ ඒවා නැවත ඒකාබද්ධ කිරීමට ඔබට ඉඩ සලසන මෙවලමකි. එය ජාවා භාෂාවෙන් ලියා ඇති අතර GTK + පරිශීලක අතුරුමුහුණතක් භාවිතා කරයි (ජාවා-ග්නෝම් ව්‍යාපෘතියට ස්තූතියි). බහුවිධ ගොනු ආකෘති (උදා: එක්ස්ට්‍රම්ස්ප්ලිට්) හැසිරවිය හැකි සමාන ව්‍යාපෘති ස්වදේශීයව ක්‍රියාත්මක කිරීම මෙහි අරමුණයි.

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


2

HOZ - හචා විවෘත මූලාශ්‍රය v1.65 - http://hoz.sourceforge.net/

රූප විස්තරය මෙහි ඇතුළත් කරන්න

සංවර්ධකයා වෙතින්:

OZ යනු ඔබ 'ගොනු බෙදීමක්' ලෙස හඳුන්වන දෙයයි. එහි ගොනු ආකෘතිය ස්පා Spain ් and යේ සහ ලතින් ඇමරිකාවේ ප්‍රසිද්ධ ස්ප්ලිටරයක් ​​වන 'හචා' මෘදුකාංගය භාවිතා කරන ක්‍රමයට සමාන වේ. HOZ යනු 'හචා' අනුකූල ස්ප්ලිටරයක විවෘත-ප්‍රභව සහ අතේ ගෙන යා හැකි සී ක්‍රියාත්මක කිරීමකි.

HOZ 'හචා' ට වඩා කුඩා හා වේගවත් ය.

btw, මම 'Z' හි 'S' හි 'ප්‍රභවය' භාවිතා කර ඇත්තේ 'hoz' ස්පා spanish ් in භාෂාවෙන් දෑකැත්තක් වන නිසාත්, 'hacha' යනු 'ax' සඳහා ස්පා spanish ් word වචනය වන නිසාත් ...

ස්ථාපනය කිරීමෙන් පසු, ඔබට ghozපර්යන්තයකට වැටීමෙන් Hoz GUI භාවිතා කළ හැකිය . මෙහෙයුම ඉතා සරල බැවින් පැහැදිලි කිරීමක් අවශ්‍ය නොවන නමුත් වැඩිදුර තොරතුරු සංවර්ධකයාගේ වෙබ් අඩවියට පිවිසිය හැකිය.

වාසනාව!


0

වුඩ්කුටර්

ජාවා හි නොමිලේ ගොනු බෙදීම් සහ ඒකාබද්ධ කිරීමේ උපයෝගීතාව. එය කුඩා ප්‍රමාණයේ යෙදුමක් වන අතර ඕනෑම ආකාරයක ගොනුවක් කුඩා ප්‍රමාණවලින් KB, MB හෝ GB වලින් බෙදීමට පරිශීලකයාට ඉඩ දෙයි.

එය ලිනක්ස් මෙන්ම වින්ඩෝස් සඳහාද ලබා ගත හැකිය.

වුඩ්කටර් මුල් ලිපිගොනු නැවත ඒකාබද්ධ කිරීමේ ක්‍රම 3 ක් ඉදිරිපත් කරයි. වුඩ්කටර් ඒකාබද්ධ ගොනුවක් නිර්මාණය කරන අතර එය වුඩ්කටර් යෙදුම මඟින් සකසා සියලු ලිපිගොනු නැවත සම්බන්ධ කර ගත හැකිය. බෙදුණු ලිපිගොනු ලබන්නා වුඩ්කැටර් ස්ථාපනය කර නොමැති නම්, මුල් ගොනුව ද ලබා ගත හැකි බැවින් වුඩ්කටර් විසින් ගොනු නැවත ඒකාබද්ධ කිරීම සඳහා කණ්ඩායම් ගොනුවක් සහ ෂෙල් ස්ක්‍රිප්ට් ගොනුවක් නිර්මාණය කරයි. කණ්ඩායම් ගොනුව වින්ඩෝස් වේදිකාවේ සහ ෂෙල් ස්ක්‍රිප්ට් ලිනක්ස් වේදිකා වල භාවිතා වේ.

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


2
බලපත්‍රය "නිදහස් මෘදුකාංග" වේ. ගබඩාවල ඇති නිදහස් මෘදුකාංග මෙවලමක් වඩා හොඳ විසඳුමක් යැයි මම සිතමි.
බ්‍රෝම්

-1

split --number

අවිනිශ්චිතතාවය හේතුවෙන් විශාල විය හැකි අන්තිම එක හැරුණු විට එකම ප්‍රමාණයේ N ගොනු ජනනය කිරීමට මෙය හොඳ විකල්පයකි. උදා:

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

Https://askubuntu.com/a/54584/52975-b හි සඳහන් කර ඇති + පැහැදිලි ප්‍රමාණ ගණනය කිරීම් හා සසඳන විට , අවසාන ගොනුව පෙර ලිපිගොනු වලට වඩා 2x විශාල විය හැකි අතර එය සමහර විට මෙම විකල්පයට අවාසියකි. ප්‍රමාණය ගණනය කිරීම ඔබ විසින්ම කළ යුතු නැති බැවින් එය බොහෝ වාරයක් වඩාත් පහසු වේ.

සමාන රේඛා සංඛ්‍යාවක් මෙහි දී විමසන ලදි: /programming/2016894/how-to-split-a-large-text-file-into-smaller-files-with-equal-number-of-lines

split2.28, උබුන්ටු 18.04 හි පරීක්ෂා කරන ලදී .

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.