如有两个文件file1 file2内容如下:
file1:
小王 北京
小李 上海
小张 北京
file2
小王 21
小李 22
小张 20
合并成一个文件,并显示如下结果:
北京 21
上海 22
北京 20
- 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
- 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
如果要求和平均值则为:
- awk 'BEGIN{total=0}{total+=$2}END{print "total :"total " avage:"total/NR}' file5
转载于:https://blog.51cto.com/yunhuyuetian/966517