私はtargets.txtとhuge.txtの2つのファイルを持っています。 Huge.txtは、タブ区切りのファイルで、50mの行とすべての数字です。 Targets.txtには、huge.txtで検索したい特定の列のみの100,000個の値(すべての数値)のリストが含まれています。私は、任意の列と一致する場合、私は私が興味を持って上以外の列の数が一致している場合がありますので、私は偽陽性を取得しますgrep複数の値ですが、特定の列のみ
を私のようなものを使用することができます。私はしません
awk '$3==someval' huge.txt
をtargets.txtのサイズを指定してforループを実行し、出力ファイルに>>を何回か実行する必要があります.O(n^2)です。 grep -Fを使う方法はありますか?grepには、例えば3列目しか見せないように指示しますか?
出力では、huge.txtの完全な行が必要です。
興味深いことに、これは最後の列を除いてhuge.txtのすべての列で機能します。私が何をしても、列$ NFの値の照合は拒否されます。だから私がすれば: awk -F '\ t "NR == FNR {a [$ 1];次の} $ NRの 'target.txt huge.txt は一度も一致しません。しかし、$ NRを$ 1から$ N-1にN列で置き換えると、そのコードはうまく動作します。 – ben
'NR'は行番号です。最後のフィールドは' $ NF'です。 – karakfa
ありがとうございます。何らかの理由で私はまだそれを最後の行で動作させることができません – ben