#!/bin/sh
src=$1
dst=$2
exist=$3
#使用awk的print打印出第一列,这里$1表示第一列,awk中$1..n表示第一..第n列,sort表示对这一列进行按字母排序
#uniq表示合并重复行,我们先看一下要处理的文件
#aa bb cc
#yy kk ll
#rr tt jj
#aa bb cc
#data test list
#执行完sort后会发现变为:
#aa bb cc
#aa bb cc
#data test list
#rr tt jj
#yy kk ll
#执行完uniq后,就变成:这里要提到一点就是直接uniq只会合并相邻的重复行
#aa bb cc
#data test list
#rr tt jj
#yy kk ll
uniq=`cat $src | awk '{print $1}' | sort | uniq`
echo $uniq #打印出 aa data rr yyfor host in $uniqdoline=`cat $src | grep $host | awk -v host=$host 'BEGIN{count=0;}{print host, $1}{if($1==host){count+=$2;}{print "count=", count}}END{if(count==0) print host, count}'`echo $line >> $dstdone
#再来讲一下line这条语句,几个点:
#1.awk -v host=$host表示声明一个变量在后面的表达式中使用
#2.BEGIN进行文件输入前的工作,END进行文件输入后的工作
#3.(这里遗留一个疑问)count+=$2;后打印出来一直是0