echo 'zhaoy 70 72 74 76 74 72' >> score.txt
echo 'wangl 70 81 84 82 90 88' >> score.txt
echo 'qiane 60 62 64 66 65 62' >> score.txt
echo 'sunw 80 83 84 85 84 85' >> score.txt
echo 'lixi 96 80 90 95 89 87' >> score.txt
把下边的内容写入到score.txt
:
zhaoy 70 72 74 76 74 72
wangl 70 81 84 82 90 88
qiane 60 62 64 66 65 62
sunw 80 83 84 85 84 85
lixi 96 80 90 95 89 87
判断
awk '{if($2>=80){print $1;print $2}}' score.txt
把第二个字段大于80的用户名和分数都输出,但是可以看到是用户名和分数是换行输出。
awk 'BEGIN{OFS=" "}{if($2>=80){print $1,$2}}' score.txt
把成绩和用户名输出在同一行。
循环
while
循环格式如下:
while(条件表达式)
awk语句集
do
循环格式如下:
do{
awk语句集
}while(条件表达式)
for
循环格式如下:
for(初始值;判断条件;变量变化语句){
awk语句集
}
awk '{sum=0; for(c=2;c<=NF;c++)sum=sum+$c;print sum}' score.txt
可以把每行的所对应分数的总值计算出来。
awk '{sum=0; for(c=2;c<=NF;c++){sum=sum+$c;print sum}}' score.txt
,这样计算的结果就是错误的,因为它把每一行每一列计算出来的数据都输出了,可以看到在for
之后的{}
里,for
循环才能让对应的语句进行循环操作。
文章来源:https://www.toymoban.com/news/detail-650409.html
此文章为8月Day 13学习笔记,内容来源于极客时间《Linux 实战技能 100 讲》。文章来源地址https://www.toymoban.com/news/detail-650409.html
到了这里,关于Linux之awk判断和循环的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!