Linuxを実行します。約150個の大きなCSVファイルのディレクトリがあります。単にZip -9
それらをオンにすると、まだ大きすぎるモノリシックファイルになります。私は、それぞれを30〜40 CSVの4つまたは5つのZipファイルに単純に圧縮したいと思います。この方法では、各Zipが独立しているため、シーケンスまたはスパンされたZipの順序は問題になりません。これを行う簡単な方法があるはずです。助言がありますか?
(可能であれば、可能であればZipをお勧めします)
-sスイッチで十分ではありませんか? Zip -sを使用して、ファイルを最大サイズのファイルに分割できます。例:
"Zip -s 300m <2 gb file>"は以下を生成します:
file.Zip (300 mb, master file)
file.001.Zip (300 mb)
file.002.Zip (300 mb)
file.003.Zip (300 mb)
file.004.Zip (300 mb)
file.005.Zip (300 mb)
file.006.Zip (200 mb)
次に、「unzip file.Zip」ですべてを一緒に解凍します。
split
入力ファイルのリスト上 :-)を使用します。
(テストされていません、クリーンアップのためにrmコマンドを含めました。注意してください)。
ls *.csv > csvfiles
split -d -l30 - csvfiles < csvfiles
for i in csvfiles[0-9][0-9]; do
Zip "$i.Zip" -@ < "$i"
done
rm csvfiles
rm csvfiles[0-9][0-9]