| 失效链接处理 | 
| 跟老男孩学linux三剑客命令V1.5 PDF 下载 
	本站整理下载: 
		提取码:mfy5 
	相关截图:  
	主要内容: 
		第一章: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 运算符见后面数组 | 



 
     苏公网安备 32061202001004号
苏公网安备 32061202001004号


 
    