使用awk合并两份文档

如果使用awk分析两份文档,并且按照某一字段合并:

示例文件格式:

file1

王姑娘 腿长120cm 

a姑娘 腿长110cm

b姑娘 腿长100cm

file2

王姑娘  冰雪聪明

a姑娘 温柔贤淑 

b姑娘 古灵精怪

使用awk分析两份文本

 awk '{ if (NR==FNR) {arraya[$1]=$2} if (NR!=FNR) { arrayb[$1]=$2}}END{for (i in arraya) {print i,arraya[i],arrayb[i]}} ' file1 file2

NR,表示awk开始执行程序后所读取的数据行数.
FNR,与NR功用类似,不同的是awk每打开一个新文件,FNR便从0重新累计.

判断NR与FNR是否相等就可以判断是否是两份不同的文件

if (NR==FNR)
if (NR!=FNR) 


因为文件的第一列相等,所以我们分别将两份文件的第一列元素取值做为数组的key
{arraya[$1]=$2} 

{ arrayb[$1]=$2}
然后遍历数组的key,分别取出两个value的值即可
END{for (i in arraya) {print i,arraya[i],arrayb[i]}
结果:

 



转载于:https://www.cnblogs.com/tymagic/p/10819210.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值