awk对文件按照列进行合并

首先解释一下awk合并文件用到的变量,NR表示读到的文件行数,会对所有文件进行累加,FNR表示读到的当前文件行数,每次读完一个文件后就会从1重新开始。

文件1.request.txt(空格分隔,一共3列)
/game/bag/batchSell 98.5775 842
/game/bag/gainVipDailyGift 24.0069 785
/game/bag/open 9.54098 16
/game/bag/refresh 76.3525 820
/game/bag/useItem 67.3278 798
/game/banquet/newBanquet 91.8188 985[color=red][/color]
/game/battle/autoCheckPoint 111.041 4419
/game/battle/cancelOffLine 154.037 2120
/game/battle/checkpoint 267.485 8589
/game/battle/detect 343.987 844
/game/battle/offLineAuto 6.31881 49
/game/battle/speedUp 71.5616 2566
/game/beauty/addToGeneral 277.299 1068

文件2.requestShort.txt(空格分隔,一共2列)
/game/bag/batchSell 12
/game/bag/gainVipDailyGift 6
/game/bag/open 6
/game/bag/refresh 0
/game/bag/useItem 6
/game/banquet/newBanquet 20
/game/battle/autoCheckPoint 0
/game/battle/cancelOffLine 6
/game/battle/checkpoint 11
/game/battle/detect 2
/game/battle/offLineAuto 0
/game/battle/speedUp 0
/game/beauty/addToGeneral 7

要求:按照第一列进行合并,合并的命令如下:
awk 'NR==FNR{a[$1]=$2}NR>FNR&&a[b=$1]{print $0, a[b]}' request.log requestShort.log >result.txt

合并后的结果:
/game/bag/batchSell 98.5775 842 12
/game/bag/gainVipDailyGift 24.0069 785 6
/game/bag/open 9.54098 16 6
/game/bag/useItem 67.3278 798 6
/game/banquet/newBanquet 91.8188 985 20
/game/battle/cancelOffLine 154.037 2120 6
/game/battle/checkpoint 267.485 8589 11
/game/battle/detect 343.987 844 2
/game/beauty/addToGeneral 277.299 1068 7
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值