gawk -v ff=${fileB} '
/^1017/ { print $0 >> ff; next; }
!(/^#/||/^1016/||/^1018/||/^1013/||/^1014/||/^1013/||/^1014/) {
f=substr($0,11,2)".csv"; print $0 >>"../../" f;
}
' ${csvfiles}
大文件AWK性能调整包含了各种20000000 lines.and我们要读每一行,如果它与1017启动时,它会在FILEB打印,不论行内容 如果它开始不启动与上面的跳过列表(1016,1013..
)它将被写入文件中,其中文件名取自行内容。例如用fg.csv编写的行 1010,abcdefg,123453,343,3434,
。我们做子串并从第二列中取出fg。写入多个文件
问题是性能就像每秒35k行。有可能让它更快吗?
sample input
Exclusion List 1016 1013 ..
Include line number 1010,1017...
1016,abcdefg,123453,343,3434,
1010,abcdefg,123453,343,3434,
1017,sdfghhj,123453,343,3434,
1034,zxczcvf,123453,343,3434,
1055,zxczcfg,123453,343,3434,
sample output
fileB.csv
1017,sdfghhj,123453,343,3434,
fg.csv
055,zxczcfg,123453,343,3434,
vf.csv
1034,zxczcvf,123453,343,3434,
拆分大文件,并行运行块和'cat'结果到一个文件中。 – karakfa
[编辑]您的问题,并使用编辑器的“{}”按钮来格式化您的示例输入/输出。还要具体说明要排除哪些数字,并确保您的示例输入/输出和代码反映了这一点。 –