如有两个文件file1 file2内容如下:

file1:

小王    北京
小李    上海
小张    北京

file2

小王    21
小李    22
小张    20

合并成一个文件,并显示如下结果:

北京 21
上海 22
北京 20

  1. awk 'FILENAME==ARGV[1]{a[FNR]=$1;b[FNR]=$2};FILENAME==ARGV[2]{for(i=1;i<=length(a);i++){if(a[i]==$1){print b[i],$2}}}' file1 file2 

上边是一一对应该的.如果不是一一对应该也适用

file3

xiaochen       beijing
xiaomao        shanghai
haidao         beijing
liliao         shanghai

file4

xiaochen      89
liliao        54
xiaomao       34
haidao        56

  1. awk 'FILENAME==ARGV[1]{a[FNR]=$1;b[FNR]=$2};FILENAME==ARGV[2]{for(i=1;i<=length(a);i++){if(a[i]==$1){print b[i],$2}}}' file3 file4 

结果如下

beijing  89
shanghai 54
shanghai 34
beijing  56

如果要求和平均值则为:

  1. awk 'BEGIN{total=0}{total+=$2}END{print "total :"total "  avage:"total/NR}' file5