首页 > 其他分享 >第八节AWK报告生成器(7)

第八节AWK报告生成器(7)

时间:2024-08-19 11:27:16浏览次数:11  
标签:语句 continue 示例 第八节 生成器 break 循环 AWK awk

七,awk控制语句

作为一种程序设计语言,awk支持程序的流程控制,例如条件判断、循环以及其他的一些流程控制语
句,例如continue、break以及exit等。掌握这些基本的流程控制语句,对于编写出结构良好的程序非常重要。

7,1 if判断语句

if语句的功能是根据用户指定的条件来决定执行程序的哪个分支,其语法如下:

if (expression)
{
	statement1 
	statement..
} 
else 
{
	statementn
	statement..
}

示例

 awk -F: '{if ($i=="root") printf "%-10s %-15s\n", $1, "Admin"; else printf "%-10s %-15s\n",$1, "common user"}' /etc/passwd
7,2 while语句

while语句是另外一种常用的循环结构,其语法如下:

while (expression)
{
    statementl
    statement2
    ...
}

示例

awk 'BEGIN{whi1e(i<=100) {sum+=i;i++}print "sum=",sum}'
awk 'BEGIN;{N=0;while (++N <= 9)print N}'
7,3 for语句

for循环语句通常用在在循环次数已知的场合中,其语法如下:

for(expressionl; expression2; expressions)
{
statementl 
statement..
}

示例:

awk 'BEGIN {for(i=l;i<=100;i++){sum+=i;}print "sum=",sum}'
7,4 循环环中的控制
break

用户可以通过使用break语句在适当的时机退出for以及while等循环结构,而不必等到循环结构自己退出
示例:

awk 'BEGIN{for(n=0;nv=9;n++)if(n==4) break;else print n;print "hahah"}'
0
1
2
3
hahah
continue

continue语句的主要功能是跳过循环结构中该语句后面的尚未执行的语句。break语句与continue语句 的功能有着明显的区别,前者是直接退出循环结构,而后者是跳过循环体中尚未执行的语句,重新执行 下一次循环
示例:

awk 'BEGIN{for(n=0;n<=9;n++)if(n==4) continue ;else print n;pri nt "hahah"}' 
0 
1 
2 
3 
5 
6 
7 
8 
9 
hahah
next

next语句的功能与continue语句非常相似,但是next语句并不是用在循环结构中,而是用在整个awk程 序中。当awk执行程序时,如果遇到next语句,则提前结束对本行文本的处理,a wk会继续读取下一行
数据,并且从第一个模式及其操作开始执行。

awk -F : '{if($3%2==0) next;print $1,$3}' /etc/passwd 
bin 1 
adm 3 
sync 5 
halt 7 
operator 11 
tss 59
exit

exit语句的功能是终止awk程序的执行

awk 'BEGIN{for(n=0;n<=9;n++)if(n==4) exit ;else print n;print "hahah"}'
0 
1 
2 
3

标签:语句,continue,示例,第八节,生成器,break,循环,AWK,awk
From: https://blog.csdn.net/weixin_73298423/article/details/141321043

相关文章

  • Linux三剑客之awk
    Linux三剑客区别grep:普通搜索,更适合单纯的查找或匹配文本sed:每次读入一行来处理的,sed适合简单的文本替换和搜索,sed读取一行,以行作为单位,进行处理。awk:每次读入一行来处理的(同sed),但awk读取一行,切割成字段,以字段为单位,进行细节处理。awk工作原理根据处理的模式,一次从文件中......
  • 一款免费、简单、直观的数据库设计工具和 SQL 生成器,在浏览器中直接使用(附源码)
    前言在软件开发过程中,数据库设计是一个关键步骤,它直接影响到应用的性能和可维护性。然而,传统的数据库设计工具往往存在一些痛点,比如操作复杂、study曲线陡峭、缺乏直观的图形界面等。这些问题不仅拖慢了开发速度,也增加了设计的难度。为了解决这些问题,一款简单、直观且功能强......
  • 【生日视频制作】航空飞机机身AE模板修改文字软件生成器教程特效素材【AE模板】
    飞机身生日视频制作教程AE模板修改文字特效广软件告生成器素材【生日视频制作】航空飞机机身机尾AE模板修改文字软件生成器教程特效素材【AE模板】生日视频制作步骤:安装AE软件下载AE模板把AE模板导入AE软件修改图片或文字渲染出视频......
  • 打靶记录12——Fawkes
    靶机:https://download.vulnhub.com/harrypotter/Fawkes.ova这是个哈利波特系列的靶机,作者和本人都非常喜欢这个系列,因为它的漏洞和利用点都设计得很巧妙。难度:高目标:取得2个root权限+3个flag涉及攻击方法:主机发现端口扫描Web信息收集FTP服务攻击缓冲区溢出......
  • 【生日视频制作】飞机机身AE模板修改文字软件生成器教程特效素材【AE模板】
    飞机机身生日视频制作教程AE模板改文字特效广软件告生成器素材【生日视频制作】飞机机身AE模板修改文字软件生成器教程特效素材【AE模板】生日视频制作步骤:安装AE软件下载AE模板把AE模板导入AE软件修改图片或文字渲染出视频......
  • 第八节AWK报告生成器(2)
    3,1,2printf语法:printf("format\n",[arguments])格式说明format是一个用来描述输出格式的字符串,format格式的指示符都以%开头,后跟一个字符,如下:format含义%c显示字符的asicll%d,%i十进制整数%e,%E科学计数法显示数值%f显示浮点数%g,%G以科学计数法的格式或浮点数的......
  • 增量生成器简化BlazorServer兼容BlazorAuto模式
    本文简略介绍一下如何使用增量生成器(IncrementalGenerator)简化BlazorServer兼容Auto模式比如现在有一个BlazorServer项目的Razor页面//UserIndex.razor@code{[Inject,NotNull]IUserService?Service{get;set;}}如果IUserService的实现不支持运行在WebAssemb......
  • 增量生成器(Incremental Generator)实现自动注入
    在之前呢,为了偷懒,是使用了反射在项目启动的时候,自动注入项目需要的服务现在改为使用源生成器,自动生成服务注入的代码nuget地址dotnetaddpackageAutoInjectGenerator--version0.0.3一个提供了3个Attribute用于自动注入的配置AutoInjectAttributeAutoInjectContextAttr......
  • crash+awk:统计vma的大小
    正常的vm命令输出:crash_new>vmPID:2380TASK:ffffff88414bddc0CPU:5COMMAND:"xxx"MMPGDRSSTOTAL_VMffffff880a997c00ffffff882574700016565804k44535380kVMASTARTENDFLAG......
  • Linux系统中的管道命令、grep命令、sed命令和awk命令
    本章将和大家分享Linux系统中的管道命令、grep命令、sed命令和awk命令。废话不多说,下面我们直接进入主题。一、管道命令Linux中的管道命令(pipe)是一种非常强大的特性,它允许你将一个命令的输出作为另一个命令的输入。管道命令极大地增强了命令行的灵活性和功能,使得复杂的数据处理......