
条件操作符
匹配
awk -F : '{if($1~/root/) print}' /etc/passwd分析:if($1~/roo/t) 表示如果 file 中包含 root,打印他
精确匹配
使用符号==
awk -F: '{if($3==0) print}' /etc/passwd不匹配
!~
awk -F: '{if($1!~/linuxone/) print}' /etc/passwd精确不匹配
!=
awk -F: '{if($1!=/linuxone/) print}' /etc/passwd小于
,<
小于等于
<=
大于
设置大小写
awk ‘/[Rr]oot’ /etc/passwd任意字符
awk -F : '{f($1~/^...t/) print}' /etc/passwd分析:if($1~/^...t/)表示第四个字母是 t
或关系匹配
awk -F : '{if($1~/(squid|nagios)/) print}' /etc/passwd行首
awk '/^root/' /etc/passwd分析:^root(行首包含 root)
AND &&
awk -F : '{if($1=="root"&&$3=="0") print}' /etc/passwdOR ||

内置变量:
变量名
含义
ARCC
命令行参数个数
ARGV
命令行参数列表
ENV |RON
支持队列中的系统环境变量的使用
FNR
浏览文件的记录数
FS
置顶分隔符,等价于-F
NF
浏览记录的域的个数
NR
一度的记录数
OFS
输出域分隔符
ORS
输出记录分隔符
RS
控制记录分隔符

案例:
打印有多少行记录
awk 'END{print NR}' /etc/passwd设置输入域到变量名
awk -F : '{name=$1;path=$7; if(name~/root/)print name"\tpath is : " path}' /etc/passwd域值比较操作
awk '{if($6<$7) print $0}' input-file修改文本域只显示修改的记录
awk -F : '{if($1=="root"){$1="nagios server" ; print}}' /etc/passwd文件长度相加
ls -l | awk '/^[^d]/ {print $9"\t" $5}{tot =$5}\END {print "total kb:"tot}'





















