首页 > 代码库 > shell之awk
shell之awk
简介
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行读入,以空格为默认分割符将每行切片,切开的部分再进行各种分析处理。
使用方法:
awk [option] ‘pattern1{action1}pattern2{action2}‘ {filenames}
尽管操作可能会很复杂,但语法总是这样,其中pattern表示awk在数据中查找的内容,而action是在找到匹配内容时所执行的一系列命令。
awk内置的三个变量
NF:表示当前的所有字段$NF表示最后一个字段
FS:默认以空格符为分割符
NR:awk读取到了哪一行
awk基础用法
1、regexp:正则表达式,格式为/regular expreesion/
awk -F : ‘$3>=500{printf $1 "\n" $3 "\n"}‘ /etc/passwd
2、expression:表达式,其只非0或为非空字符时满足条件,例如~表示匹配(类似grep查找行匹配)
awk -F : ‘$7!~"bash$"{printf $7 "\n"}‘ /etc/passwd
3、ranges:指定匹配范围,格式为pat1,pat2
awk -F : ‘$3 == 0,$7~"nologin$"{printf $1 "\t" $7 "\n"}‘ /etc/passwd
4、BEGIN/END:特殊模式,
awk -F : ‘BEGIN{printf "Username shell\n"}$3 == 0,$7~"nologin$"{printf $1 "\t" $7 "\n"}‘ /etc/passwd
5、空模式:表示没有任意匹配选项
本文出自 “常想一二” 博客,请务必保留此出处http://250919938.blog.51cto.com/962010/1918868
shell之awk