源文件如下:
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";
}
比较这两个编程,明显第二个方法要比第一种方法来的简练。
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";
}
比较这两个编程,明显第二个方法要比第一种方法来的简练。