可以使用以下的AWK代码,将其作为一个单独的脚本文件,比如"output-every-1gb.awk":
BEGIN {
chunk_size = 100000
bytes_per_chunk = 0
output_number = 1
output_file = "output_part_" output_number
}
{
# pattern/action block here
# ...
bytes_per_chunk += length($0) + 1 # add 1 for newline character
if (bytes_per_chunk >= 1000000000) { # 1GB = 1000000000 bytes
close(output_file)
output_number++
output_file = "output_part_" output_number
bytes_per_chunk = 0
}
print $0 >> output_file
}
这个脚本将计算每一行的字节数,然后在增加1000000000字节之前,将每个"chunk"输出到一个单独的文件中。样本输出文件名为"output_part_1","output_part_2"等。