Linux三剑客-awk

Posted imlifelong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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]++ ENDfor(a in S ) print S[a],a |uniq| sort -rh 查看最近登录最多的IP信息

awk -F: count++; ENDprint count /etc/passwd    打印用户数量

 

以上是关于Linux三剑客-awk的主要内容,如果未能解决你的问题,请参考以下文章

Linux三剑客

Linux三剑客

Linux三剑客之grepegrep及正则表达式使用详解

Linux三剑客AwkSedGrep 命令详解

Linux入门开发: 学习linux三剑客(awksedgrep)(上)

linux三剑客之sed史上最实用教程!