繁体   English   中英

如何使用awk shell脚本比较和匹配两个文件

[英]How to use awk shell script to compare and match two files

基本上我有两个档案

dupestest.txt

152,153
192,193
215,216
290,291
2279,2280
2282,2283

haftest.txt

152,ABBOTS ROAD
153,ABBOTS ROAD
154,ABBOTS ROAD
155,ABBOTS ROAD
156,ABBOTS ROAD
157,ABBOTS ROAD

我想在haftest.txt中的dupestest.txt中找到数字,并产生以下结果:results.txt

152,ABBOTS ROAD,153 ABBOTS ROAD 
192,ABBOTS ROAD,193,ABBOTS ROAD

等等

谁能给我任何建议?

它必须处于awk状态。

尝试这个:

awk -F, 'BEGIN{OFS=","} FNR==NR{a[$1]=$2; next} $1 in a || $2 in a{print $1, a[$1], $2, a[$2]}' haftest.txt dupestest.txt

此脚本行测试dupestest.txtdupestest.txt存在haftest.txt的第一个或第二个键,如果其中一个键存在,则在dupestest.txt其关联值,如果需要,您可能需要对脚本进行一些调整haftest.txt只有两个键之一才能获得所需的输出,这留给您练习。

尝试这个

awk -F, 'NR==FNR{a[$1]=$0;next}$1 in a&&$2 in a{print a[$1]","a[$2]}' haft.txt dup.txt

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM