码迷,mamicode.com
首页 > 系统相关 > 详细

Linux三剑客-awk

时间:2019-09-14 22:49:56      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:多个   $1   分隔符   处理   结果   %s   begin   tab   lin   

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    打印用户数量

 

Linux三剑客-awk

标签:多个   $1   分隔符   处理   结果   %s   begin   tab   lin   

原文地址:https://www.cnblogs.com/imlifelong/p/11516439.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!