linux——awk 报告生成器

awk

awk 基本用法

linux 系统中默认使用gawk

awk命令形式:
awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file
[-F|-f|-v] 大参数
-F指定分隔符,-f调用脚本,-v定义变量 var=value
’ ’
引用代码块
BEGIN
初始化代码块,在对每一行进行处理之前,初始化代码,主要是引用全局变量,设置FS分隔符
//
匹配代码块,可以是字符串或正则表达式
{}
命令代码块,包含一条或多条命令

多条命令使用分号分隔
END
结尾代码块,在对每一行进行处理之后再执行的代码块,主要是进行最终计算或输出结尾摘要信息

本文简单执行一些命令,有兴趣的话可是自己下来多试试其他的

linux——awk 报告生成器
awk -F ":" '{print $1}' passwd显示每行的第一列
linux——awk 报告生成器
awk -F ":" 'BEGIN{print "NAME"}{print $1}' passwd
linux——awk 报告生成器
awk -F ":" '{print $1}END{print "END"}' passwd
linux——awk 报告生成器
awk -F ":" 'BEGIN{print "NAME"}{print $1}END{print "END"}' passwd
linux——awk 报告生成器
awk -F ":" 'BEGIN{print "NAME"}{print NR}END{print "END"}' passwd
linux——awk 报告生成器
awk -F ":" 'BEGIN{print "NAME"}{print NR$1}END{print "END"}' passwd
linux——awk 报告生成器
awk -F ":" 'BEGIN{print "NAME"}{print }END{print "END"}' passwd
linux——awk 报告生成器
awk '/bash$/{print}' passwd显示以 bash 结尾的行
awk -F ":" '/bash$/{print $1}' passwd显示以 bash 结尾的行的第一列内容
awk -F ":" 'BEGIN{N=0}/bash$/{N++}END{print N}' passwd
显示文件 passwd 的行数
awk '/^ro/{print}' passwd显示以 ro 开头的行
awk '/^[a-d]/{print}' passwd显示以 a 或 b 或 c或 d 开头的行
awk -F ":" '/^a|nologin$/{print}' passwd显示以 a 开头或以 nologin 结尾的行
awk '/^r/&&/bash$/{print}' passwd显示以 r 开头且以 bash 结尾的行
awk '/^r/||/bash$/{print}' passwd显示以 r 开头或以 bash 结尾的行
linux——awk 报告生成器
awk -F ":" '$7!~/bash$/{print}' passwd显示七个字段并不以 bash 结尾的行
awk -F ":" '{print NR$0}' passwd显示第几行及其内容,之间没有空格
awk -F ":" '{print NR,$0}' passwd显示第几行及其内容,之间有空格
linux——awk 报告生成器
awk -F ":" '{print NF,$0}' passwd显示每行有多少列,并显示内容
linux——awk 报告生成器