通过使用awk脚本比较其他文件中的字符串来输出记录

通过使用awk脚本比较其他文件中的字符串来输出记录,awk,Awk,我想使用awk脚本在另一个文件中输出具有匹配字符串的记录 文件1代码 849002|48|1208004|1 849007|28|1208004|1 855003|48|1208004|1 855004|28|1208004|1 855006|28|1208004|1 文件2代码: 00990029000000004804470425|ST1400029|0.550|Recurring|1248073|ST1400029 00990029000000008410517183|IM1450029

我想使用awk脚本在另一个文件中输出具有匹配字符串的记录 文件1代码

849002|48|1208004|1
849007|28|1208004|1
855003|48|1208004|1
855004|28|1208004|1
855006|28|1208004|1
文件2代码:

00990029000000004804470425|ST1400029|0.550|Recurring|1248073|ST1400029
00990029000000008410517183|IM1450029|1.000|Recurring|855003|ST1400029
009900290000000000007800612988|IM3350029|1.000|Recurring|1248063|ST1400029
<>注意,在每个样本的中间行中出现<代码> 855003 <代码>?这就是我要寻找的匹配,输出应该是:

00990029000000008410517183|IM1450029|1.000|Recurring|855003|ST1400029
因为我想在file2的$5中搜索file1的$1,如果找到匹配项,则输出该行 我试过这个,但它返回零记录

awk 'NR==FNR{a[$1]=$1;next}a[$5]{print $0}' file2 file1  > outfile
您的帮助将解决我的问题,我必须搜索一长串数据

试试这个(没有测试)


不要忘记使用
-F
标志设置分隔符:

awk -F "|" 'FNR==NR { a[$1]; next } $5 in a' file1 file2
结果:

00990029000000008410517183|IM1450029|1.000|Recurring|855003|ST1400029

不要忘记使用
-F
标志设置分隔符:

awk -F "|" 'FNR==NR { a[$1]; next } $5 in a' file1 file2
结果:

00990029000000008410517183|IM1450029|1.000|Recurring|855003|ST1400029

@拉凯什:如果答案对你有用,别忘了接受它。干杯。@Rakesh:如果答案对你有用,别忘了接受它。干杯