在linux系统中,两个txt文件中,我要在第一个文件中提取出含有第二个文件中的内容的行。哪位能解决一下吗

如第一个文件中含有GD1、GD2、GD3、GD5。第2个文件中含有GD1 (23837) (12083)、GD2 (19827) (29833)、GD3 (29832) (92334) 、GD4 (39873) (87344) 、GD5 (28344) (92834)。我要提取出含有GD1、2、3、5行,不要GD4的行,应该怎么写命令?有很多,手工完全不行。
比如文件一如下:
100 1 1 2 4

169 1 1 1 6

171 1 1 1 3

208 1 1 2 3

366 0 1 2 3

382 0 1 1 4

460 1 1 1 5
文件二:

169

366

460
我需要在第1个文件中提取出含第二个文件内容的行,需要的如下:
169 1 1 1 6
366 0 1 2 3
460 1 1 1 5

第1个回答  2014-08-29
把文件贴一小部分完整的吧。到底GD1、GD2、GD3、GD5是在一行还是一列呢?追问

一列。已补充,你再看一下。

追答gawk 'ARGIND==1{a[$1]=$1} ARGIND==2{if(a[$1]!="") print $0}' 文件2 文件1

本回答被提问者和网友采纳
相似回答