回答:
-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]
split -C
(--line-bytes
)ではなくsplit -l
(--lines
)を使用するのですか?1つのアーカイブに含まれるCSVファイルの数に関しては、より予測しやすいでしょう。
file.z01 file.z02 ... file.zip
しunzip file.zip
て直接動作しません(最初にzip -Fを使用して再結合します)。これらは要求どおりに「独立」していないことに注意してください。