1.2.1 赋值运算
学习目标
这一节,我们从 基础知识、简单实践、小结 三个方面来学习
基础知识
简介
awk本质上属于一种编程语言,所以它具有编程语言的一般功能,表达式、流程控制等基本上都在awk中具有想当程度的使用。这一节我们学习awk进阶到流程控制的一个基础知识点 -- 表达式。
表达式分类
awk的表达式包括很多种类,常见的表达式有:算术操作符:+ - * / ^ %赋值操作符:= += -= /= ++ -- %= ^=比较操作符:== != > >= < <= 模式匹配符:~ 左边是否与右边匹配包含,!~ 是否不匹配逻辑操作符:与&&、或||、非!
简单实践
实践1-字符串赋值
[root@localhost ~]# awk -v name='shuji' 'BEGIN{print name}'
shuji[root@localhost ~]# awk 'BEGIN{school="xigongda";print school}'
xigongda
实践2-数据赋值
命令区域段内进行数据赋值操作
[root@localhost ~]# echo | awk '{i=10;print i+=1}'
11
[root@localhost ~]# echo | awk '{i=10;print i++,i}'
10 11
[root@localhost ~]# echo | awk '{i=10;print ++i,i}'
11 11
[root@localhost ~]# echo | awk '{i=10;print --i,i}'
9 9
[root@localhost ~]# echo | awk '{i=10;print i--,i}'
10 9在BEGIN段是可以的,由于END段主要是收尾的信息显示,所以基本不做计算层次的功能
[root@localhost ~]# awk 'BEGIN{i=0;print i++,i}'
0 1
[root@localhost ~]# awk 'BEGIN{i=0;print ++i,i}'
1 1
实践3-变量赋值
-v 设定变量进行赋值操作
[root@localhost ~]# awk -v n=0 'n++' awk.txt
nihao awk4 awk5 awk6
nihao awk7 awk8 awk9
[root@localhost ~]# awk -v n=0 '!n++' awk.txt
nihao awk1 awk2 awk3
结果显示:当递增与!同时存在的时候,!优先生效
实践4-数组赋值
在awk中可以设定数组
[root@localhost ~]# awk 'BEGIN{array[0]=100;print array[0]}'
100
小结