shell脚本之awk学习笔记
	shell脚本学习笔记九——awk
	    
	#cat grade.txt
	M.Tansley    05/99    48311   Green    8    40   44
	J.Lulu       06/99    48317   green    9    24   26
	P.Bunny      02/99    48      Yellow   12   35   28
	J.Troll      07/99    4842    Brown-3  12   26   26
	L.Tansley    05/99    4712    Brown-2  12   30   28
	awk '{print $1,$4}' grade.txt
	打印报告头
	awk 'BEGIN {print "Name \t   Belt\n--------------------"}{print $1"\t"$4}' grade.txt
	 
	打印信息尾
	# awk 'BEGIN{print "Name \t \n------"}{print $1}END{print "--end of report--"}' grade.txt
	Name    
	------
	M.Tansley
	J.Lulu
	P.Bunny
	J.Troll
	L.Tansley
	--end of report--
	awk中正则表达式及其操作
	1) 元字符     \ ^ $ . [] | () * + ?
	2) 条件操作符 <  <=  ==  !=  >=    ~ 匹配正则表达式   !~ 不匹配正则
表达式
匹配 使一域号匹配正则表达式,使用 ‘~’后紧跟正则表达式,也可以使用
	if语句.awk中if后面的条件用()括起来
	# awk '{if($4 ~/Brown/)print $0}' grade.txt
	J.Troll      07/99    4842    Brown-3  12   26   26
	L.Tansley    05/99    4712    Brown-2  12   30   28
	# awk '$0 ~/Brown/' grade.txt
	J.Troll      07/99    4842    Brown-3  12   26   26
	L.Tansley    05/99    4712    Brown-2  12   30   28
	精确匹配
	# awk '{if($3=="48") print $0}' grade.txt              第三列有很多
	48,所以要用精确匹配
	P.Bunny      02/99    48      Yellow   12   35   28
	# awk '$3==48' grade.txt                               awk默认动作是
	print
	P.Bunny      02/99    48      Yellow   12   35   28
	awk '{ if ($6 < $7) print $1" Try better at..."}' grade.txt
	M.Tansley Try better at...
	J.Lulu Try better at...
	设置大小写     [] 可匹配任意字符或单词
	awk '{if($4 ~/[Gg]reen/) print $0}' grade.txt
	M.Tansley    05/99    48311   Green    8    40   44
	J.Lulu       06/99    48317   green    9    24   26
	awk '/[Gg]reen/' grade.txt         结果同上
	任意字符
	[root@localhost awk_sed]# awk '$1 ~/^...a/' grade.txt
	M.Tansley    05/99    48311   Green    8    40   44
	L.Tansley    05/99  &
	
相关新闻>>
- 发表评论
- 
				
- 最新评论 进入详细评论页>>







