我只是将一个非常大的 csv 文件拆分为多个部分。每当我运行以下命令时。并没有完全拆分,而是返回以下错误。我怎样才能避免拆分整个文件。
awk -F, '{print > $2}' test1.csv
awk: YY1 makes too many open files
input record number 31608, file test1.csv
source line number 1
只是close
写入后的文件:
awk -F, '{print > $2; close($2)}' test1.csv
你必须有很多行。您确定第二行重复到足以将这些记录放入单个文件中吗?无论如何,awk 将文件保持打开直到结束。您需要一个可以在不使用时关闭文件句柄的进程。
Perl 来拯救。再次。
#!perl
while( <> ) {
@content = split /,/, $_;
open ( OUT, ">> $content[1]") or die "whoops: $!";
print OUT $_;
close OUT;
}
用法:script.pl your_monster_file.csv
将整行输出到与当前目录中第二个 CSV 列的值相同的文件中,假设没有引用字段等。