Linux三剑客-awk
awk 是Linux中强大的数据处理工具
awk 的变量 NR 记录数,行数 NF 域数,列数 $NF最后一列 OFS 结果分隔符,默认空格 FS 条件分隔符 RS 记录分隔符默认空格 -F 指定分隔符默认是空格 awk -F '\t' '{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\t %d\n", $1, $4)}' passwd.txt 格式化打印(printf 类似C语言中) last | awk '{FS="\t"} {S[$3]++} END{for(a in S ) {print S[a],a}}' |uniq| sort -rh 查看最近登录最多的IP信息 awk -F: '{count++;} END{print count}' /etc/passwd 打印用户数量