与 Miller 一起按列拆分巨大的 CSV

Ily*_*sin 5 csv miller

我需要每天分割包含 50K+ 列的巨大 (>1 Gb) CSV 文件。

我发现Miller是完成此类任务的一个有趣且高效的工具。

但我被米勒的文档困住了。

如何将一个 CSV 拆分为N较小的 CSV 文件,其中N源文件中有许多行?

abo*_*uso 5

尝试使用这个脚本

mlr --csv put -S 'if (NR % 10000 == 0) {$rule=NR} else {$rule = ""}' \
then fill-down -f rule \
then put -S 'if ($rule=="") {$rule="0"}' \
then put -q 'tee > $rule.".csv", $*' input.csv
Run Code Online (Sandbox Code Playgroud)

在新文件夹中创建 CSV 的副本,然后对其运行此脚本。它将每 10000 行生成一个 csv 文件。