awk编程示例

源文件如下:
Yellow#Junior
Orange#Senior
Yellow#Junior
Orange#Junior
Red#Senior
Red#Junior
现在需要统计文件中Yellow、Orange、Red个数以及Junior、Senior的个数。则利用awk编程
statistic1.awk
#!/bin/awk -f
BEGIN {
FS = "#";
}
{
split($0,students,"#");
for (i in students) {
if ( students[i] == "Yellow" ){
yellow_count +=1;
} else if ( students[i] == "Orange" ) {
orange_count +=1;
} else if ( students[i] == "Red" ) {
red_count +=1;
} else if ( students[i] == "Junior" ) {
junior_count +=1;
} else if ( students[i] == "Senior" ) {
senior_count +=1;
}
}
}
END {
print "yellow_count:" yellow_count;
print "orange_count:" orange_count;
print "red_count:" red_count;
print "junior_count:" junior_count;
print "senior_count:" senior_count;
}

statistic2.awk
#!/bin/awk -f
BEGIN {
FS="#"

colours["Yellow"]
colours["Orange"]
colours["Red"]

students["Junior"]
students["Senior"]
}
{
for ( colour in colours ) {
if ($1 == colour) {
colours[colour]++;
}
}

for ( student in students ) {
if ( $2 == student ) {
students[student]++;
}
}
}

END {
for ( colour in colours ) print "The Club has ", colours[colour],colour, "Beltes";
for ( student in students ) print "The Club has ", students[student],student, "students";

}

比较这两个编程,明显第二个方法要比第一种方法来的简练。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值