如何从另一个文件中查找包含任何字符串的行?

时间:2015-01-20 02:49:42

标签: shell grep intersect

我有2个csv文件。文件A,包含多列。文件B,有一列。 例如:

档案A:

chr1 100000 100022 A C GeneX
chr2 200000 200033 X GeneY
chr3 300000 300055 G A GeneZ

档案B:

GeneY
GeneZ

我希望我的输出为:

chr2 200000 200033 X GeneY
chr3 300000 300055 G A GeneZ

我尝试过使用grep(崩溃)和其他人 我确信必须有一个非常简单的答案,我无法看到!

2 个答案:

答案 0 :(得分:2)

使用grep -f

grep -f FileB FileA

答案 1 :(得分:0)

以下是awk

的使用方法
awk 'FNR==NR {a[$0];next} {for (i in a) if (i~$1) print i}' FileA FileB
chr2 200000 200033 X GeneY
chr3 300000 300055 G A GeneZ

或者像这样:

awk 'FNR==NR {a[$0];next} ($NF in a)' FileB FileA
chr2 200000 200033 X GeneY
chr3 300000 300055 G A GeneZ