awk处理案例五
【场景】--如何根据文件1中的关键字提取文件2中的内容
文件1:
4238 4240
文件2
4237 MY4237A 4237 MY4237B 4238 MY4238A 4238 MY4238B 4238 MY4238C 4239 MD4239A 4240 MY4240A 4240 MY4240B 4240 MY4240C 4240 MD4240A 4240 MD4240B 4240 MD4240C
要求根据文件1中的字段1为关键字提取文件2中的内容,输出如下:
4238 MY4238A 4238 MY4238B 4238 MY4238C 4240 MY4240A 4240 MY4240B 4240 MY4240C 4240 MD4240A 4240 MD4240B 4240 MD4240C
【代码】
awk 'NR==FNR{a[$1]=1;next}{if(a[$1]==1)print $0}' file1 file2
【解析】
先把文件1中数据存放在数组a中的下标中;意思是把a[4238],a[4240]都等于1;到文件2中的第一列;看哪些a[$1]等于1就打印出来;
【测试结果】
[li0924@localhost awk]$ awk 'NR==FNR{a[$1]=1;next}{if(a[$1]==1)print $0}' 1 2 4238 MY4238A 4238 MY4238B 4238 MY4238C 4240 MY4240A 4240 MY4240B 4240 MY4240C 4240 MD4240A 4240 MD4240B 4240 MD4240C

浙公网安备 33010602011771号