大きなファイル(たとえば8GB)があります。それを複数の部分に分割するにはどうすればいいですか?3つの等しい部分としましょう。その後、それらを後でどのように統合しますか?
これを実現するにはいくつかの方法があります。基本的なものから始めましょう。
画像があり、大きすぎる(10MB)と言います。私がしているのは:
split --bytes=1M /path/to/image/image.jpg /path/to/image/prefixForNewImagePieces
そして、それをまとめるために猫を使用します:
cat prefixFiles* > newimage.jpg
例えば:
画像があるフォルダ内にいると仮定します:
split --bytes=1M myimage.jpg new
画像がimagesというディレクトリ内にある場合、これも実行できます。
split --bytes=1M images/myimage.jpg new
イメージがディレクトリ/ home/cyrex/images内にある場合、これを実行できます。
split --bytes=1M /home/cyrex/images/myimage.jpg new
(上記のすべての場合で、myimage.jpg
を1MBの断片に分割し、断片の名前の前にWordを追加します。したがって、それらはnewaa
、newab
、newac
、newad
...のようになります。)
テキストファイルを分割していて、行で分割する場合は、次のようにします。
split -l 1000 book.txt new
これは、テキストファイルをそれぞれ1000行の出力ファイルに分割します。これはファイルを分割する別の方法であり、主にログ、SQLダンプ、csvファイルなどのテキストファイルに使用されます。
次に、それらをマージします
cat new* > newimage.jpg
これは一つの方法です。分割されたピースのサイズを変更することもできます。 --bytes=1M
という部分を1キロバイトの場合は--bytes=1K
に、ギガの場合は1Gに、または4KBの場合は--bytes=4K
のような別の数字を変更するだけです。
別の方法は、NautilusのGUIの圧縮オプションです。圧縮するファイルをより小さなメガバイトサイズに分割するオプションが提供されます。そのシンプルで簡単。
ubuntu.iso
というISOイメージがあると仮定すると、これを行うことができます。
7z a -v5m -mx0 ubuntu.7z ubuntu.iso
これにより、ubuntu.iso
から5MBのサイズのファイルが作成されます。 -v5m
はボリュームサイズであるため、10、12、1、3に変更できます。また、キロバイトなどではmをkに変更できます。 -mx0
スイッチは、7-Zipに圧縮を使用しない、つまり、データを部分に分割するように指示します。
抽出するには
7z x ubuntu.7z.001
この方法で最初のファイルを抽出すると、7zは次のファイルから順番に抽出を開始します。あなたもできる
7z e ubuntu.7z.001
ここでも同じ効果があります。
適切な番号でsplit -b
を使用すると、3つのピースを取得できます。
番号は次のとおりです。
size=$(wc -c <"file name")
one_third=$((size/3+1))
再構築するには、catを使用します
cat "file name"* > "file name"
マニュアルページは詳細を記入するのに役立ちます。
ファイルを分割および再結合するための一般的なフリーウェアプログラムです。このプログラムは、Windows、Linux、およびその他のさまざまなプラットフォームで利用可能です。
Linux用のHJSplitは、完全なグラフィカルユーザーインターフェイスを備えたLinux用のフリーウェアファイルスプリッターです。 HJSplitは、100ギガバイトを超えるファイルサイズ、分割、結合/再結合、MD5チェックサム、ファイル比較、「インストールなしで実行」をサポートし、プログラムは完全に移植可能です。
Linux用のHJSplitはインストールする必要がなく、特別なライブラリに依存しません。 hjsplitlx.tar.gzアーカイブを任意のディレクトリに抽出し、Linuxファイルマネージャーまたはターミナルウィンドウからプログラムを起動するだけです。プログラムのファイル許可を「実行可能」に調整する必要がある場合があります。
Gnome split? http://gnome-split.org/
GNOME Splitは、ファイルを分割して元に戻すことができるツールです。 Javaで記述され、GTK +ユーザーインターフェイスを使用します(Java-gnomeプロジェクトのおかげです)。目標は、複数のファイル形式(Xtremsplitなど)を処理できる同様のプロジェクトのネイティブ実装を提供することです。
http://www.omgubuntu.co.uk/2010/08/split-large-files-easily-in-ubuntu-with-gnome-split/
HOZ-Hacha Open Zource v1.65- http://hoz.sourceforge.net/
開発者から:
OZは、「ファイルスプリッター」と呼ばれるものです。そのファイル形式は、スペインとラテンアメリカでよく知られている「Hacha」ソフトウェアで使用されているものと同じです。 HOZは、「Hacha」互換スプリッターのオープンソースでポータブルなC実装です。
HOZは「Hacha」よりも小さくて高速です。
ところで、「hoz」はスペイン語で「鎌」であり、「hacha」は「axe」のスペイン語であるため、「Z」を「Zource」で「S」の代わりに使用しました...
インストール後、ターミナルにghoz
をドロップしてHoz GUIを使用できます。操作は非常に簡単なので、説明は必要ありませんが、開発者のサイトで詳細を確認できます。
幸運を!
Javaで開発された無料のファイル分割およびマージユーティリティ。これは、ユーザーが任意のタイプのファイルをKB、MB、またはGBの小さなサイズに分割できるようにする小さなサイズのアプリケーションです。
LinuxおよびWindowsで利用可能です。
WoodCutterには、元のファイルをマージする3つの方法があります。 WoodCutterはマージファイルを作成し、WoodCutterアプリケーションで処理してすべてのファイルを結合します。分割ファイルの受信者にWoodCutterがインストールされていない場合、WoodCutterはファイルをマージするためのバッチファイルとシェルスクリプトファイルも作成するため、元のファイルも取得できます。バッチファイルはWindowsプラットフォームで使用され、シェルスクリプトはLinuxプラットフォームで使用されます。
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
+明示的なサイズ計算と比較すると、最後のファイルは以前のものよりもほぼ2倍大きくなることがあります。このオプションの欠点。ただし、サイズの計算を自分で行う必要がないため、何度も便利です。
等しい数の行が次で尋ねられました: https://stackoverflow.com/questions/2016894/how-to-split-a-large-text-file-into-smaller-files-with-equal-number- of-lines
split
2.28、Ubuntu 18.04でテスト済み。