linux awk工具

awk是一个非常好用的数据处理工具。相较于sed常常一整行处理,awk则比较倾向于一行当中分成数个“字段”处理,awk处理方式如下:   $awk'条件类型1{动作1} 条件类型2{动作2} ...'filename

1.查看最近5条登录用户和ip地址

$last-n5|awk'{print $1"\t"$3}'lzyer 192.168.56.1reboot boot

lzyer    192.168.56.1reboot    boot

lzyer    192.168.56.1   

wtmp    Sat

注意:$0代表整行

变量名称代表意义

NF每一行($0)拥有字段总数

NR目前awk处理的第几行

FS目前分隔符,默认是空白


awk的逻辑运算

运算单元      代表意义

>                   大于

<                   小于

>=                 大于等于

<=                 小于等于

==                 等于

!=                  不等于

值得注意的是那个“ == ”的符号,因为:

逻辑运算上面亦即所谓的大于、小于、等于等判断式上面,习惯上是以“ == ”来表示;

如果是直接给予一个值,例如变量设置时,就直接使用 = 而已。

举例来说,在 /etc/passwd 当中是以冒号 ":" 来作为字段的分隔, 该文件中第一字段为帐号,第三字段则是 UID。那假设我要查阅,第三栏小于 10 以下的数据,并且仅列出帐号与第三栏, 那么可以这样做:

$cat/etc/passwd|awk'{FS=":"} $3<10 {print $0}'root:x:0:0:root:/root:/bin/zsh

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

统计数据例子:

$cat pay.txt

Name    1st    2nd    3th

VBird  230002400025000DMTsai  210002000023000Bird2  430004200041000


$cat pay.txt|awk 'NR==1{printf "%10s %10s %10s %10s %10s\n",$1,$2,$3,$4,"Total"} \

NR>=2{total=$2+$3+$4

> printf"%10s %10d %10d %10d %10.2f\n",$1,$2,$3,$4,total}' Name 1st 2nd 3th Total}'

     VBird      23000240002500072000.00    

    DMTsai      21000200002300064000.00    

    Bird2      430004200041000126000.00

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • awk命令的基本使用 [root@shellscript ~]# head -n 3 /etc/passwd | ...
    古寒飞阅读 4,673评论 0 2
  • 一. AWK 说明 awk的处理文本和数据的方式:它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并...
    西华子阅读 4,453评论 0 4
  • 9.6 awk命令(上) awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准...
    hch004阅读 2,548评论 0 0
  • awk: grep,sed,awk grep:文本过滤 sed:文本编辑 awk:文本格式化工具; 1 什么是aw...
    木林森阅读 5,775评论 0 16
  • 打开电视,爱奇艺上选了个评价较高的电影观看:everybody's fine《天伦之旅》,看完后,感觉很伤心,很温...
    为坚持喝彩阅读 4,643评论 0 0