当前位置: 首页 > news >正文

Linux之awk判断和循环

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循环才能让对应的语句进行循环操作。
在这里插入图片描述

此文章为8月Day 13学习笔记,内容来源于极客时间《Linux 实战技能 100 讲》。

http://www.lryc.cn/news/123014.html

相关文章:

  • Django入门
  • uniapp 格式化时间刚刚,几分钟前,几小时前,几天前…
  • JProfiler —CPU评测
  • 994. 腐烂的橘子
  • Rx.NET in Action 第三章学习笔记
  • Windows11环境下VS2019调用Pytorch语义分割模型(C++版)
  • Milkv Duo 以太网使用与配置
  • bash: make: command not found
  • 热点如何用于期刊写作——以chatGPT为例
  • IGV.js 的完全本地化运行探索
  • 网络安全渗透测试之靶场训练
  • Java课题笔记~ Spring 的事务管理
  • 仿到位|独立版家政上门预约服务小程序家政保洁师傅上门服务小程序上门服务在线派单源码
  • Observability:识别生成式 AI 搜索体验中的慢速查询
  • 接口测试及接口抓包常用的测试工具
  • CH342/CH343/CH344/CH347/CH9101/CH9102/CH9103/CH9104 Linux串口驱动使用教程
  • 反射和工厂设计模式---工厂设计模式
  • 【算法——双指针】LeetCode 283 移动零
  • 腾讯云轻量服务器和云服务器的CPU处理器有差别吗?
  • Redis_亿级访问量数据处理
  • Java-类型和变量(基于C语言的补充)
  • 机器学习笔记:李宏毅diffusion model
  • STM32--TIM定时器(2)
  • git Authentication failed
  • 【软考】2023系统架构设计师考试
  • opencv基础55-获取轮廓的特征值及示例
  • OpenCV图像处理——形态学操作
  • 修改VS Code终端的显示行数
  • C++学习| MFC简单入门
  • “一日之际在于晨”,欢迎莅临WAVE SUMMIT上午场:Arm 虚拟硬件早餐交流会