关于awk 中如何使用 if条件判断句
文章目录
这个是我自己写的 全部关于 awk学习的目录导航 ,感兴趣的可以看看。
首先,大家都知道 if 条件判断句 吧,这个就算不知道 也很好理解吧:无非就是条件成立则执行对应的代码、条件不成立则不执行!
在 awk 中,我们也是可以搭配 if条件判断句 来使用:
千万要注意格式!!!!非常重要!!!!
在编程语言中,if 还有 “if…else…” 或 “if…else if…else” 这样的语法,当然 awk 中也有这样的用法:
首先看一下他们的语法吧:
1、这是 “if…else…” 的语法
if (条件)
{
语句1;
语句2;
…
}
else
{
语句1;
语句2;
…
}
2、这是 “if…else if…else” 的语法:
if (条件1)
{
语句1;
语句2;
…
}
else if(条件2)
{
语句1;
语句2;
…
}
else
{
语句1;
语句2;
…
}
举例:关于 “if…else…”
这个语法的意思就是:if 条件匹配则执行…反正执行…
然后结合一下前面学过的 “格式化输出” 哈哈哈哈 学以致用嘛!
举例:关于 “if…else if…else”
这里本来是打算用截图的,但是字太小了,不方便大家查看,这里就使用代码块了:
root@zhengzelin:~# 首先 你要知道 “if...else if...” 这个语法代表什么意思! 这里面包括几个条件?我们来看一个例子:root@zhengzelin:~# printf "%-10s\t%-10s\n" 姓名 年龄 张三 10 李四 20 王五 80 > aaa
root@zhengzelin:~# cat aaa
姓名 年龄
张三 10
李四 20
王五 80 root@zhengzelin:~# 使用 格式化 输出 到一个文件中 ,作为我们使用 if 语法的例子;
说太多不如举一个例子,这样更加方便查看和理解:root@zhengzelin:~# awk 'BEGIN{FS="\t"} {if($2<=18) {printf "%-10s\t%-10s\n",$1," 是未成年"} else if($2>18 && $2<=60) {printf "%-10s\t%-10s\n",$1," 是成年人"} else{printf "%-10s\t%-10s\n",$1," 是老年人"}}' aaa
姓名 是老年人
张三 是未成年
李四 是成年人
王五 是老年人 root@zhengzelin:~# 但是,你看这个输出结果,虽然是格式化的,但是第一排是什么鬼?姓名是老年人?这时候我们需要使用 NR 内置变量了:root@zhengzelin:~# awk 'BEGIN{FS="\t"} NR!=1 {if($2<=18) {printf "%-10s\t%-10s\n",$1," 是未成年"} else if($2>18 && $2<=60) {printf "%-10s\t%-10s\n",$1," 是成年人"} else{printf "%-10s\t%-10s\n",$1," 是老年人"}}' aaa
张三 是未成年
李四 是成年人
王五 是老年人 如果你不懂 printf 格式化输出 或者 NR 等内置变量,建议您阅读前面的文章呢!
本文章题目开头有 awk 学习导航,学习应该脚踏实地 一步一步来!
虽然这样看的也不是很方便,但是最起码比那个图片要舒服!
然后我再结合上篇学的 next 的用法:
使用 next 可以加快 脚本的执行速度!虽然结果出来了 ,但是 我也是对 next 理解的不是很清楚,如果哪位大佬有自己的见解,可以教一下我吗?
上一篇:awk 中 next 的用法
下一篇:awk 中的 循环语句:for、while…跳出循环:continue、break
关于awk 中如何使用 if条件判断句相关推荐
- 《编程珠玑(续)(修订版)》—第2章2.1节Awk中的关联数组
本节书摘来自异步社区<编程珠玑(续)(修订版)>一书中的第2章,第2.1节Awk中的关联数组,作者[美]Jon Bentley,更多章节内容可以访问云栖社区"异步社区" ...
- awk(1) awk中的函数
awk 中的函数 1.字符串 1.1 index(原字符串,子字符串) 如果子字符串在原字符串中第一次出现的位置,如果不存在返回0 1.2 length(字符串) 返回字符串的长度 1.3 ma ...
- R语言ggplot2可视化:通过在element_text函数中设置ifelse判断条件自定义标签文本的显示格式:例如、粗体、斜体等
R语言ggplot2可视化:通过在element_text函数中设置ifelse判断条件自定义标签文本的显示格式:例如.粗体.斜体等 目录
- jpa中使用Query判断条件查询
jpa中使用Query判断条件查询 @Query(value = " select m.* from mining_area as m " +" where 1 = 1& ...
- 关于在DataTable中执行DataTable.Select(条件)返回DataTable的解决方法
在实际编程工程中,常常遇到这样的情况:DataTable并不是数据库中的,或者DataTable尚未写到数据库,或者从数据库中读出的DataTable已经在本地被改动,又没有写回数据库(可能还要作其他 ...
- Mybatis-Plus实战中的几个条件构造器Wrapper用法
Mybatis-Plus实战中的几个条件构造器Wrapper用法 其实Wrapper有很多其他的方法,组合起来也是殊途同归,大家可以自己点开源码去查看一些方法的使用说明 @Testvoid conte ...
- 转在同一个sql语句中如何写不同条件的count数量
今天在做Portal中的Dashboard展现的时候,需要对多个统计字段做展现,根据我现在的掌握水平,我只能在sql调用构建器中实现一种sql语 句返回的resultSet做展现.没有办法,只能从数据 ...
- Awk中调用shell命令
Awk中调用shell命令 需求 在awk中,有时候需要调用linux系统中命令,如计算字符串的MD5值,并保存下来. 方法参考 call a shell command from inside aw ...
- 找到二叉树中符合搜索二叉树条件的最大拓扑结构
找到二叉树中符合搜索二叉树条件的最大拓扑结构 给定一棵二叉树的头节点 head,已知所有节点的值都不一样,返回其中最大的.且符合搜索二叉树 条件的拓扑结构的节点数.这里的拓扑结构是指,你可以在二叉树中 ...
- awk 分隔符 多个空格_如何在awk中指定多个分隔符
如果需要进行操作和维护或进行操作和维护开发 -> awk的-F参数可以指定一个新的分隔符,有时您可能需要指定多个分隔符,例如以下内容 [root@N1 ~]# netstat -an | gre ...
最新文章
- matplotlib-pie-绘制饼状图
- 这里有8个流行的Python可视化工具包,你喜欢哪个?
- 【Codeforces - 864D】Make a Permutation!(贪心,字典序)
- c 语言 while break,26 C 语言中的break和continue - C 语言基础教程
- 日常问题——解决mac下 ssh: connect to host localhost port 22: Connection refused
- 总结几点Quartz的经验
- 80-200-040-原理-MySQL服务端架构
- python time 时间差,python如何计算时间差
- 基于JAVA+SpringMVC+Mybatis+MYSQL的宠物寻回系统
- Python入门学习笔记(7)
- Pycharm远程调试:变量内容加载过慢或不能加载
- IDEA java 中文乱码解决方法
- JAVA开发环境搭建
- setw()使用方法
- MAMP配置虚拟主机
- Android Studio 修改 Java 语言版本到 1.8
- 值得推荐的MAC软件下载软件的网站
- 考研视频有点难,以后继续早上锻炼
- 随机生成26个英文字母
- a16z合伙人Chris Dixon:DeFi和NFT之后的下一波区块链应用浪潮
热门文章
- 我国使用计算机增长率表格,excel表格如何计算数据的增长率-怎么用Excel计算年均复合增长率?...
- 【操作系统】GPT和MBR分区的区别
- 无刷舵机和普通舵机,数字舵机还有模拟舵机的区别
- mysql 速度评测_[评测]低配环境下,PostgresQL和Mysql读写性能简单对比(欢迎大家提出Mysql优化意见)...
- 计算机打印状态错误,打印机状态错误怎么办 打印机状态错误解决方法【图文】...
- ALV 单元格控制参数LVC_S_STYL排序问题
- 一文带你揭秘并实现“大数据杀熟”背后的逻辑!
- 贪心科技SkipGram 2020.4.3笔记
- 网易邮箱发送失败服务器连接失败,网易邮件发送不出去MI:SFQ错误
- 调试铁通与联通专线遇到的问题