运行 Linux。我的目录中有大约 150 个大型 CSV 文件;简单地zip -9
对它们执行操作会产生一个仍然太大的单片文件。我希望它简单地将它们压缩成大约四到五个 zip 文件,每个 zip 文件包含 30-40 个 CSV;这样排序或跨 zip 顺序就不会成为问题,因为每个 zip 都是独立的。一定有一个简单的方法来做到这一点。有什么建议吗?
(是的,如果可能的话,zip 是首选格式)
答案1
-s 开关还不够吗?您可以使用 zip -s 将文件拆分为最大大小的文件,例如:
“zip -s 300m <2 gb 文件>”生成:
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”将把所有内容一起解压缩。
答案2
使用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]