两个文件:a文件:

小王    北京

小李    太原

小刘    北京

小杨    北京

           B文件:

小王         20

小李         21

小刘         22

小杨         30

求北京人的平均年龄


awk处理2个文件的例子-网易_第1张图片


awk 'NR==FNR{a[$1]=$2} NR!=FNR &&a[$1] {print $0,a[$1]}' a b|grep "北京"|awk'{sum+=$2} END {print "average = " sum/NR}'

***&&a[$1] 可以省略

NRFNR相等是,表示在对第一个文件进行操作,a[$1]=$2,表示,建立一个数组,以第一个字段为小标,第二个字段为值,

NR!=FNR的时候,说明在对第二个文件操作,



另外一个处理2个文件的例子 ,


awk 'NR==FNR{a[i]=$0;i++}NR>FNR{print a[s]"\t"$0;s++}'