awk script, batch_size ( , ). :
BEGIN {RS=""; ORS="\n\n"; last_f=""; batch_size=20}
FILENAME!=last_f {r_per_f=calc_r_per_f(); incr_out(); last_f=FILENAME; fnum=1}
{print $0 > out}
(FNR%r_per_f)==0 {incr_out()}
function incr_out() {close(out); fnum++; out=FILENAME"_"fnum".out"}
function calc_r_per_f() {
cmd=sprintf( "grep \"^$\" %s | wc -l", FILENAME )
cmd | getline rcnt
close(cmd)
return( sprintf( "%d", rcnt/batch_size ) )
}
batch_size , , , out= incr_out().
awko, , awko data1 data2, , , data2_7.out. , , , ..