我必须处理格式为10-20GB的文本文件:field1 field2 field3 field4 field5
我想将每行field2中的数据解析成几个文件中的一个; 推送到的文件是由field4中的值逐行确定的.field2中有25个不同的可能值,因此数据可以被解析为25个不同的文件.
我尝试过使用Perl(慢速)和awk(更快但仍然很慢) - 有没有人对替代方法有任何建议或指示?
仅供参考,这是我试图使用的awk代码; 注意我必须恢复通过大文件25次,因为我无法在awk中同时打开25个文件:
chromosomes=(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25)
for chr in ${chromosomes[@]}
do
awk < my_in_file_here -v pat="$chr" '{if ($4 == pat) for (i = $2; i <= $2+52; i++) print i}' >> my_out_file_"$chr".query
done
Run Code Online (Sandbox Code Playgroud)