web-dev-qa-db-ja.com

大きなファイルを小さな部分に分割する

大きな+ 4GBファイルを、それぞれ約500MBの小さなファイルに分割する方法を教えてください。

そして、どのようにして元のファイルを取得するためにre-assembleそれらを再度実行しますか?

66
Stefan

split およびcatを使用できます。

たとえば次のようなもの

$ split --bytes 500M --numeric-suffixes --suffix-length=3 foo foo.

(入力ファイル名はfooで、最後の引数は出力プレフィックスです)。これにより、foo.000 foo.001などのファイルが作成されます...

短いオプションを使用した同じコマンド:

$ split -b 100k -d -a 3 foo foo

正確なバイト数ではなく、行の境界で分割する場合は、「-line-bytes」を指定することもできます。

生成されたピースを再度組み立てるには、次のように使用できます。

$ cat foo.* > foo_2

(シェルがシェルグロビングの結果をソートすると仮定します-パーツの数は、システムに依存する引数の制限を超えません)

次の方法で結果を比較できます。

$ cmp foo foo_2
$ echo $?

(0を出力するはずです)

あるいは、find/sort/xargsの組み合わせを使用して、ピースを再構成することもできます。

$ find -maxdepth 1 -type f -name 'foo.*'  | sort | xargs cat > foo_3
80
maxschlepzig

GUIを使用する場合は、アーカイブマネージャを使用してこれを行うこともできます。 [保存]-> [その他のオプション]-> [分割ボリューム]の下を確認します。

4
user1498