条件语句

    if(条件表达式)
动作1
else if(条件表达式)
动作2
else
动作3

  

循环语句:

    while循环:
while(条件表达式)
动作 do while循环:
do
动作
while(条件表达式) for循环:
for(初始化计数器;计数器测试;计数器变更)
动作

  

以:为分隔符,只打印/etc/passwd中第3个字段的数值在50-100范围内的行信息

awk 'BEGIN{FS=":"}{if($3>50 && $3<100) print $0}' passwd

if.awk  

        BEGIN{
FS=":"
}
{
if($3<50)
{
printf "%-20s%-20s%-10d\n","UID<50",$1,$3
}
else if ($3>50 && $3<100)
{
printf "%-20s%-20s%-10d\n","50<UID<100",$1,$3
}
else
{
printf "%-20s%-20s%-10d\n","UID>100",$1,$3
}
}

  

输出 以 UID 以50位为分界点的用户,-f 将条件表达式写到文本中读取

awk -f if.awk passwd

计算下列每个同学的平均分数,并且只打印平均分数大于90的同学姓名和分数信息

        Allen    80    90    96    98
Mike 93 98 92 91
Zhang 78 76 87 92
Jerry 86 89 68 92
Han 85 95 75 90
Li 78 88 98 100 算出平局成绩
awk 'BEGIN{printf "%-20s%-20s%-20s%-20s%-20s%-20s\n","Name","Chinese","English","Math","Physical","Average"}{sum=$2+$3+$4+$5;avg=sum/4}
{printf "%-20s%-20d%-20d%-20d%-20d%-0.2f\n",$1,$2,$3,$4,$5,avg}' student.txt

  

加入条件判断,如果平均分数大于90才打印

awk 'BEGIN{printf "%-20s%-20s%-20s%-20s%-20s%-20s\n","Name","Chinese","English","Math","Physical","Average"}{sum=$2+$3+$4+$5;avg=sum/4}{if(avg>90)
printf "%-20s%-20d%-20d%-20d%-20d%-0.2f\n",$1,$2,$3,$4,$5,avg}' student.txt

计算1+2+3+4+...+100的和,请使用while、do while、for三种循环方式实现

  

通过读取文件的方式载入awk的条件

add_while.awk

        BEGIN{
while(i<=100)
{
# 一个变量不赋值,默认为0或者空
sum+=i
i++
}
print sum
}

do while循环

awk -f add_dowhile.awk

for循环

add_for.awk

        BEGIN{
for(i=0;i<=100;i++)
{
sum+=i
}
print sum
}

字符串函数对照表

案例演示

以 : 为分隔符, 返回/etc/passwd中每行中每个字段的长度

len.wak

BEGIN{
FS=":"
}
{
i=1
while(i<=NF)
{
if (i==NF)
{
printf "%d",length($i)
}
else
{
printf "%d:",length($i)
}
i++
}
print ""
}
awk -f len.awk passwd

搜索字符串"I have a dream"中出现"ea"字符串的位置

awk 'BEGIN{str="I have a gream";printf "%d\n",index(str,"ea")}'

将字符串"Hadoop is a bigdata Framework"全部转换为小写

awk 'BEGIN{str="Hadoop is a bigdata Framework";print tolower(str)}'

将字符串"Hadoop is a bigdata Framework"全部转换为大写

awk 'BEGIN{str="Hadoop is a bigdata Framework";print toupper(str)}'

将字符串"Hadoop Kafka Spark Storm HDFS YARN Zookeeper",按照空格为分隔符,分隔

awk 'BEGIN{str="Hadoop Kafka Spark Storm HDFS YARN Zookeeper";split(str,arr);for (i in arr) print arr[i];}'

搜索字符串"Transaction 2345 Start:Select * from master"第一个数字出现的位置

awk 'BEGIN{str="Transaction 2345 Start:Select * from master";print match(str,/[0-9]/)}'

截取字符串"transaction start"的子串,截取条件从第4个字符开始,截取5位

awk 'BEGIN{str="transaction start";print substr(str,4,5)}'

替换字符串"Transaction 243 Start,Event ID:9002"中第一个匹配到的数字串替换为$符号

awk 'BEGIN{str="Transaction 243 Start,Event ID:9002";count=sub(/[0-9]+/,"$",str);print count;print str}'

gsub是替换全部匹配到的数字 (通过 // 写正则表达式 )

awk 'BEGIN{str="Transaction 243 Start,Event ID:9002";count=gsub(/[0-9]+/,"$",str);print count;print str}'

在awk中数组下标从1开始

awk 'BEGIN{str="Hadoop Kafka Spark Storm HDFS YARN Zookeeper";split(str,arr," ");print arr[0]}'

awk 'BEGIN{str="Hadoop Kafka Spark Storm HDFS YARN Zookeeper";split(str,arr," ");for(i in arr) {print arr[i]}}' 

  

  

  

awk 条件及循环语句和字符串函数的更多相关文章

  1. Python 2.7 学习笔记 条件与循环语句

    本文介绍下python条件和循环语句的语法 一.if条件语句 语法格式如下: if 表达式: .... elif 表达式: .... elif 表达式: .... else: ..... 说明:与其它 ...

  2. Python中的条件和循环语句

    条件和循环语句 1. 条件语句 if单用 格式:if 条件表达式 例如:if 5 > 3: print('True') >>> 'True' #当条件满足时才会执行上述操作. ...

  3. python系列八:Python3条件控制&循环语句

    #!/usr/bin/python #-*-coding:gbk-*-#Python3 条件控制&循环语句import randomage = int(input("请输入你的年龄: ...

  4. python实例 条件和循环语句

    #! /usr/bin/python #条件和循环语句 x=int(input("Please enter an integer:")) if x<0:     x=0    ...

  5. Python学习笔记(二):条件控制语句与循环语句及常用函数的用法

    总结的内容: 1.条件控制语句 2.while循环语句 3.for循环语句 4.函数的用法 一.条件控制语句 1.介绍 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决 ...

  6. Javascript语法,变量类型,条件,循环语句,函数,面向对象

    1.JavaScript代码革两种存在形式: <!-- 方式一 --> <script type='txt/javascript' src='/js/comment.js'>& ...

  7. Python之路-条件控制&循环语句&列表推导式&常用函数

    一.什么是条件控制语句 条件控制语句,也可以称之为判断语句,通过一条或多条的执行结果来决定接下来要执行的代码块. 二.if语句 if语句是用来进行判断的,最简答的if语句只有一个判断一个操作. 语法: ...

  8. python2学习------基础语法1 (变量、分支语句、循环语句、字符串操作)

    1.变量类型 Numbers(数字):int,float,long String(字符串) List(列表) tuple(元组) dict(字典) bool(布尔):True,False # 删除变量 ...

  9. python之最强王者(3)——变量,条件、循环语句

    1.Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的 ...

随机推荐

  1. windows10 环境下的RabbitMQ安装步骤(图文)

    第一步:下载并安装erlang 原因:RabbitMQ服务端代码是使用并发式语言Erlang编写的,安装Rabbit MQ的前提是安装Erlang. 下载地址:http://www.erlang.or ...

  2. (十四)访问标志 Access_flags

    一.概念 上一章节讲到了常量池,如下图,常量池之后便是访问标志acess_flags,占2个字节(u2). 二.例子 编写一个接口. public interface Test{ public fin ...

  3. MySQL 8中使用全文检索示例

    首先建议张册测试用的表test,并使用fulltext说明将title和body两列的数据加入全文检索的索引列中: drop table if exists test; create table te ...

  4. 使用sql语句创建和删除约束示例代码

    使用sql语句创建和删除约束  约束类型 主键约束(Primary Key constraint) --:要求主键列数据唯一,并且不允许为空.  唯一约束(Unique constraint) --: ...

  5. Python3之内建模块hashlib

    摘要算法简介 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串( ...

  6. C#自带的Version判断版本号的大小

    Version version1 = new Version("1.0.0.25"); Version version2 = new Version("1.0.0.24& ...

  7. 039 Android ShareSDK实现分享功能

    1.参考文献: https://blog.csdn.net/augfun/article/details/86551294 http://wiki.mob.com/sdk-share-android- ...

  8. 026 Android 带不同类型条目的listview(纯文本类型的条目,图片+文字类型的条目)+读取内存空间、手机进程信息+常驻悬浮框

    1.目标效果 带不同类型条目的listview(纯文本类型的条目,图片+文字类型的条目)+常驻悬浮框 2.页面布局文件 (1)activity_process_manager.xml <?xml ...

  9. LocalDate LocalTime LocalDateTime Instant的操作与使用

    一.简介 LocalDate表示当前(或指定)日期,格式为:yyyy-MM-dd LocalTime表示当前(或指定)时间,格式为:HH:mm:ss SSS LocalDateTime表示当前(或指定 ...

  10. RocketMq 集群方式搭建 步骤教学包教包会

    mq集群方式搭建 有段时间没写这些技术文章了, 今天抽空写一点,不然自己都快忘记了 这篇文章记录了rocketmq 集群方式搭建的过程, 也是自己半天的成果记录吧! 感兴趣的朋友点个赞在走呗! 好了, ...