首页 > 代码库 > 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