Linux三剑客-awk

awk 是Linux中强大的数据处理工具

awk 的变量
    NR 记录数,行数
    NF 域数,列数 $NF最后一列
    OFS 结果分隔符,默认空格
    FS 条件分隔符
    RS 记录分隔符默认空格
    
-F    指定分隔符默认是空格
    awk -F '	' '{print $1}'     指定分隔符为tab并打印第一列

awk 'BEGIN {FS=","} {print $1}'    指定分隔符为 , 并打印第一列
    FS=',+' 分隔符为一个或多个 , 至少一个 ,
    
awk 'BEGIN {FS=':'} $1~/admin/' passwd.txt    匹配第一列是admin的行

awk 'BEGIN {FS=":"} $0~/admin/' passwd.txt    匹配全域有admin的行

awk 'BEGIN {FS=":"} $0!~/admin/' passwd.txt    全部区域都不匹配

awk 'BEGIN {FS=":"} {if ($3>$4) print $0}' passwd.txt 打印第三列大于第四列的行

awk 'BEGIN {FS=":"} {if ($3==10 || $4==10) print $0}' passwd.txt 打印第三域或第四域为10的行

awk 'BEGIN {FS=":"} {if ($3~10 || $4~10) print $0}' passwd.txt 打印第三域或第四域包含'10'的行

awk '/^$/ {print s+=1}' passwd.txt 匹配空白行从1到n,s默认从0开始

awk 'BEGIN {FS=":"} {printf("%s	 %d
", $1, $4)}' passwd.txt 格式化打印(printf 类似C语言中)

last | awk '{FS="	"} {S[$3]++} END{for(a in S ) {print S[a],a}}' |uniq| sort -rh 查看最近登录最多的IP信息

awk -F: '{count++;} END{print count}' /etc/passwd    打印用户数量
原文地址:https://www.cnblogs.com/imlifelong/p/11516439.html