Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!

跟老男孩学linux三剑客命令V1.5 PDF 下载


分享到:
时间:2020-09-14 10:33来源:http://www.java1234.com 作者:小锋  侵权举报
跟老男孩学linux三剑客命令V1.5 PDF 下载
失效链接处理
跟老男孩学linux三剑客命令V1.5 PDF 下载

 
本站整理下载:
 
相关截图:
 
主要内容:
第一章:Awk 讲解 
1.1.Awk 的讲解 
awk 是一种很棒的语言,它适合文本处理和报表生成,其语法较为常见,借鉴了某些语
言的一些精华,如 C 语言等。在 linux 系统日常处理工作中,发挥很重要的作用,掌握了 awk
将会使你的工作变的高大上。awk 是三剑客的老大,利剑出鞘,必会不同凡响。
1.2.Awk 实战讲解
1.2.1.awk 的原理
通过一个简短的命令,我们来了解其工作原理。
awk '{print $0}' /etc/passwd
echo hhh|awk '{print "hello,world"}'
awk '{ print "hiya" }' /etc/passwd
你将会见到/etc/passwd 文件的内容出现在眼前。现在,解释 awk 做了些什么。调用 awk
时,我们指定/etc/passwd 作为输入文件。执行 awk 时,它依次对/etc/passwd 中的每一行执
行 print 命令。所有输出都发送到 stdout,所得到的结果与执行 cat /etc/passwd 完全相同。
现在,解释{ print }代码块。在 awk 中,花括号用于将几块代码组合到一起,这一点类
似于 C 语言。在代码块中只有一条 print 命令。在 awk 中,如果只出现 print 命令,那么将
打印当前行的全部内容。
再次说明,awk 对输入文件中的每一行都执行这个脚本。
$ awk -F":" '{ print $1 }' /etc/passwd
$ awk -F":" '{ print $1 $3 }' /etc/passwd
$ awk -F":" '{ print $1 " " $3 }' /etc/passwd
$ awk -F":" '{ print "username: " $1 "\t\tuid:" $3" }' /etc/passwd
1.2.2.BEGIN 和 END 模块
通常,对于每个输入行,awk 都会执行每个脚本代码块一次。然而,在许多编程情况中,
可能需要在 awk 开始处理输入文件中的文本之前执行初始化代码。对于这种情况,awk 允许
您定义一个 BEGIN 块。我们在前一个示例中使用了 BEGIN 块。因为 awk 在开始处理输入文
件之前会执行 BEGIN 块,因此它是初始化 FS(字段分隔符)变量、打印页眉或初始化其它
在程序中以后会引用的全局变量的极佳位置。
awk 还提供了另一个特殊块,叫作 END 块。awk 在处理了输入文件中的所有行之后执行
这个块。通常,END 块用于执行最终计算或打印应该出现在输出流结尾的摘要信息。
1.2.3.运算符
表 1.2.3.awk 运算符表
运算符 描 述
赋值运算符
= += -= *= /= %= ^= **= 赋值语句
逻辑运算符
|| 逻辑或
&& 逻辑与
正则运算符
~ !~ 匹配正则表达式和不匹配正则表达式
关系运算符
< <= > >= != == 关系运算符
算术运算符
+ - 加,减
* / & 乘,除与求余
+ - ! 一元加,减和逻辑非
^ *** 求幂
++ -- 增加或减少,作为前缀或后缀
其他运算符
$ 字段引用
空格 字符串链接符
?: 三目运算符
In 数组中是否存在某键值
 awk 赋值运算符
a+5;等价于:a=a+5;其他同类
[root@yum tmp]# awk 'BEGIN{a=5;a+=5;print a}' 
10
 awk 逻辑运算符
[root@yum tmp]# awk 'BEGIN{a=1;b=2;print (a>2&&b>1,a=1||b>1)}'
0 1
 awk 正则运算符
[root@yum tmp]# awk 'BEGIN{a="100testaaa";if(a~/100/){print "ok"}}' 
ok
[root@yum tmp]# echo|awk 'BEGIN{a="100testaaa"}a~/100/{print "ok"}' 
ok
 关系运算符
如:> < 可以作为字符串比较,也可以用作数值比较,关键看操作数如果是字符串
就会转换为字符串比较。两个都为数字 才转为数值比较。字符串比较:按照ascii
码顺序比较。
[root@yum tmp]# awk 'BEGIN{a="11";if(a>=9){print "ok"}}'
[root@yum tmp]# awk 'BEGIN{a=11;if(a>=9){print "ok"}}' 
ok
[root@yum tmp]# awk 'BEGIN{a;if(a>=b){print "ok"}}' 
ok
 awk 算术运算符
说明,所有用作算术运算符 进行操作,操作数自动转为数值,所有非数值都变为
0。
[root@yum tmp]# awk 'BEGIN{a="b";print a++,++a}' 
0 2
[root@yum tmp]# awk 'BEGIN{a="20b4";print a++,++a}' 
20 22
 其他运算符
?:三目运算符
[root@yum tmp]# awk 'BEGIN{a="b";print a=="b"?"ok":"err"}'
ok
[root@yum tmp]# awk 'BEGIN{a="b";print a=="c"?"ok":"err"}'
err
in 运算符见后面数组

 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐