ファイル2のフィールド> xのファイル1の行を選択します。

ファイル2のフィールド> xのファイル1の行を選択します。

次のような多くの情報を含む大容量ファイルfile1があります。

rs969931    C   A   1.993   1.189   1.003 ..............
rs2745406   C   T   1.993   1.166   1.003 ..............
rs6939431   A   G   0.003   0.207   0.005 ..............
rs1233427   A   G   1.990   1.150   1.001 ..............

2番目のファイルfile2には、この情報の品質が含まれています。ファイル2の行Nの値は、ファイル1の行Nの品質に対応します。

0.19893
0.94752
0.93768
0.47781

私が望むのは、ファイル2> 0.5のファイル1から行を選択することです。私が見つけることができる最も近いのはID一致の問題です(別のファイルにIDがリストされているテキストファイルから行を選択する)、ここではファイル2の値を使用していくつかの論理演算を実行する必要があります。

大容量ファイルに対して複数の作業を行う必要があるため、ファイル 2 をファイル 1 に追加し、フィルタリング後に削除するなどの面倒なソリューションを避けてください。

ベストアンサー1

paste qual.txt data.txt | awk '$1 > 0.5'

これは、最初に品質値を最初の列として含め、別のデータを別の列として含むデータを生成するために使用されますpaste。このawkコードは、単に最初の列(品質)が0.5より大きい行を選択して印刷します。

出力品質が不要な場合:

paste qual.txt data.txt | awk '$1 > 0.5' | cut -f 2-

与えられた例では、これが生成されます

rs2745406   C   T   1.993   1.166   1.003 ..............
rs6939431   A   G   0.003   0.207   0.005 ..............

おすすめ記事