join を使用して、約 450 万行のファイルに列を追加しようとしています。ファイルは最初の列でソートされます。ファイル1の最初の列のすべての数値は、ファイル2の最初の列にあります。「結合FILE1 FILE2>出力」を使用すると、最初の1000行程度で機能し、その後停止します...
私は結合という考えに固執しておらず (プログラムが正しく動作しないようです)、これらのファイルに結合する他の方法を受け入れています。grep を試しましたが、4*10^6 レコードに対して grep でこれを行うと非常に遅くなります。以下は、私が扱っているデータのサンプルです。
FILE 1
964 0 0.0 0.0 0.0 0.0 1.0 -
965 0 0.0 1.0 0.0 0.0 0.0 -
966 0 0.0 0.0 0.0 0.0 1.0 -
967 0 0.0 0.0 0.0 0.0 1.0 -
968 0 0.0 1.0 0.0 0.0 0.0 -
969 0 0.0 0.0 0.0 1.0 0.0 -
970 0 0.0 0.0 1.0 0.0 0.0 -
971 0 0.0 1.0 0.0 0.0 0.0 -
1075 3 4.0 0.0 0.0 0.0 0.0 -
1076 0 4.0 0.0 0.0 0.0 0.0 -
1077 0 0.0 0.0 4.0 0.0 0.0 -
1078 0 0.0 0.0 0.0 4.0 0.0 -
File 2
964 T
965 C
966 T
967 G
968 C
969 T
970 G
971 C
972 G
973 G
974 T
975 G
976 C
977 T
978 G
979 G
980 C
981 T
982 G
output (Last few lines)
965 0 0.0 1.0 0.0 0.0 0.0 - C
966 0 0.0 0.0 0.0 0.0 1.0 - T
967 0 0.0 0.0 0.0 0.0 1.0 - G
968 0 0.0 1.0 0.0 0.0 0.0 - C
969 0 0.0 0.0 0.0 1.0 0.0 - T
970 0 0.0 0.0 1.0 0.0 0.0 - G
971 0 0.0 1.0 0.0 0.0 0.0 - C
9990 0 0.0 0.0 0.0 0.0 0.0 - T
9991 0 0.0 0.0 0.0 0.0 0.0 - C
編集辞書形式での並べ替えは、463835 以降のすべてのレコードで機能します。おそらく、他の列が原因で、入力ファイルの並べ替えが異なるためだと思います???
FILE 1
466630 0 0.0 0.0 0.0 0.0 0.0 -
46663 0 0.0 0.0 0.0 3.0 0.0 -
466631 0 0.0 0.0 0.0 0.0 0.0 -
FILE 2
466639 C
46663 A
466640 G