大容量ファイルをサブファイルに分割します。このプロセスを実行する方法は? [コピー]

大容量ファイルをサブファイルに分割します。このプロセスを実行する方法は? [コピー]

私のUnixボックスには2GBの大きなファイルがあります。このファイルにはxml行が含まれています。各ファイルが約204 MBであると仮定し、このファイルを10個のファイルに分割しようとしています。したがって、10個のファイルをマージすると、元のファイルの2GBが返されるはずです。 10個のファイルを元のものとマージすると、コンテンツは再現可能でなければなりません。

Unixではどうすればいいですか?

ベストアンサー1

次のコマンドがありますsplit

~$ split --help
Usage: split [OPTION]... [INPUT [PREFIX]]
Output fixed-size pieces of INPUT to PREFIXaa, PREFIXab, ...; default
size is 1000 lines, and default PREFIX is `x'.  With no INPUT, or when INPUT
is -, read standard input.
...
-n, --number=CHUNKS     generate CHUNKS output files.
...
CHUNKS may be:
N       split into N files based on size of input
K/N     output Kth of N to stdout
l/N     split into N files without splitting lines
l/K/N   output Kth of N to stdout without splitting lines
r/N     like `l' but use round robin distribution
r/K/N   likewise but only output Kth of N to stdout

だからあなたはする必要があります

~$ split -n10 -d myfile mySubFile_

-dサフィックスを使用して、数字のサフィックス(オプション)を含む10個のファイルを作成します。mySubFile_

~$ ls -1t
mySubFile_00
mySubFile_01
mySubFile_02
mySubFile_03
mySubFile_04
mySubFile_05
mySubFile_06
mySubFile_07
mySubFile_08
mySubFile_09

君は再編成できる

cat mySubFile_* > myfile

おすすめ記事