awk学习

来源:互联网 发布:web前端和java 编辑:程序博客网 时间:2024/05/18 01:22

#!/bin/shsrc=$1dst=$2exist=$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

0 0
原创粉丝点击