awk是一个强大的文本分析工具
相对于grep的查找,sed的编辑 awk 在其对数据分析并生成报告时,显的尤为强大。
简单来说awk就是把文件逐行的读入,(空格,制表符)为默认分割符将每行切片,切开的部分再进行各种分析处理。
awk -F ‘{pattern + action}’ {filenames}
支持自定义分隔符
支持自定义变量 数组a[1] a[tom] map(key)
支持内置变量
ARGC
ARGV
ENVIRON
FILENAME
FNR
FS
NF
NR
OFS
ORS
RS
支持函数:print split substr sub gsub
支持流程控制语句 类C语言
if while do/while for break continue
举例:
awk -F ‘:’ {print $1} 文件名 将文件的每一行根据:进行分割 然后输出第一列
awk -F ‘:’ ‘BEGIN {print “name,shell”}{print $1 “,” $7}’ 文件名 将文件的每一行根据:进行分割 然后输出第一列和第七列 BEGIN 是在头加头部信息。结果如图:
awk ‘/root/ {print $0}’ 文件名 输出文件中包含root的行
awk -F ‘:’ ‘{print NR “\t” NF “\t” $0}’ 文件名 输出文件中每一行的行号 分割后每行的列数 对应的完成行内容