我有file-1,这是一个有990万行和8列的大文件。我有另一个文件2,具有330万行和9列。实际上,如果文件1的第2列与文件2的第2列匹配,我将从文件1中提取行。
我使用了以下代码
awk 'BEGIN { while ((getline<"file-1")>0) {REC[$2]=$0}} {print REC[$2]}' < file-2 > file-3
但是文件1有990万行,此代码没有给我任何输出。而如果将990万行拆分为10万行,则会得到输出。如果我用50万行将其拆分,则再无输出。
这是我的拆分命令
split -l 100000 -d file-1 smallfile- --additional-suffix=.txt
现在我需要帮助,这样我就可以将这些文件分成10万行的小块,并将所有小块运行到上述awk命令中,这将给我输出后缀以_split_file_100_thousand结尾的..等等,例如输出前10万个分割文件3_split_100_thousand 同样,对于990万行,它将为file3_split_9.9_million
我的示例文件1
A B C D E F G H
chr1 1 0.5 0.6 0.7 0.7 0.9 10.0
chr1 2 0.5 0.6 0.11 0.7 0.9 10.0
chr1 3 0.5 0.6 0.1 0.7 0.9 10.0
chr1 4 0.5 0.6 0.7 0.7 0.9 10.0
File2
A B C D E F G H I
chr1 3 0.1 0.2 0.3 0.7 0.9 10.0 19
chr1 4 0.100 0.3 0.7 0.7 0.9 10.0 19
File3
A B C D E F G H
chr1 3 0.5 0.6 0.1 0.7 0.9 10.0
chr1 4 0.5 0.6 0.7 0.7 0.9 10.0