次のような大きなテキストファイル(ファイルA)があります。
ID1 ID2 0.2
ID3 ID6 0.4
ID4 ID2 0.6
ID5 ID8 0.8
ID7 ID14 0.4
ID3 ID9 0.6
ID8 ID10 0.8
2つの異なるテキストファイル(BとC)があり、ファイルBは次のようになります。
ID1
ID2
ID3
ID4
ID5
ID6
ID7
ファイルCは次のようになります。
ID8
ID9
ID10
ID11
ID12
ID13
ID14
最初の2つの列の関連内容は、ファイルBとファイルCの両方に属するファイルAの行だけを保持したいと思います。たとえば、ファイルAの次の行だけが必要です。
ID10 ID3 0.8
ID7 ID14 0.4
ID3 ID9 0.6
ID10とID3はファイルBとCの両方に属するからです。そのような出力を取得する方法を教えてください。
非常にありがとう
答え1
ファイルに表示される文字列のファイルと、ファイルgrep
に表示される文字列の結果。A
B
grep
C
$ ( grep -wF -f fileB | grep -wF -f fileC ) <fileA
ID5 ID8 0.8
ID7 ID14 0.4
ID3 ID9 0.6
使用されたオプションgrep
は
-w
完全な単語のみを一致させます(一般的ですが非標準オプションです)。ID10
grepに一致がない場合は、このオプションを使用してくださいID1
。-F
パターンを正規表現ではなく文字列として解釈します。-f
別のファイルから一致させるパターンを読みます。