awk 例子

               awk 例子                 

打印本机swap分区总大小,格式如:Swap:1023M:

free -m |awk '/Swap/{print $1,$2" M"}'

将当前目录下大于10K的文件打印出来:

ll | awk '{if($5>10240){print $NF}}' (1024代表字节)

 打印当前sshd的端口和进程id,格式如ssh:22  pid:1241:

netstat -nltp | grep ssh |awk -F: '{print $2}'| grep -v "^$"|awk '{print "ssh:"$1}'

 如果能在变量a中匹配到10,就打印“OK”;

awk 'BEGIN{a="100testaaa";if(a~/10/){print "Ok"}}' 
Ok
echo |awk 'BEGIN{a="100testaaa"}a~/100/{print "ok"}
ok

计算5+5=10

[root@slavedb test]# awk 'BEGIN{a=5;a+=5;print a}'
10
[root@slavedb test]# awk 'BEGIN{a=5;a=a+5;print a}'   
10

计算,如果a>9就打印出来ok,如果a大于等于11,就打印出ok;

awk 'BEGIN{a=11;if(a>9){print "ok"}}'  
ok
awk 'BEGIN{a=11;if(a>=11){print "ok"}}'

三目运算,判断b,是否等于b;

awk 'BEGIN{a="b";print a=="b"?"ok":"err"}'

指定字段分隔符打印:

[root@JXX-Tencent-Game1 ~]# cat tab.txt 
aa                      bb      cc
[root@JXX-Tencent-Game1 ~]# awk 'BEGIN{FS="\t+"}{print $1,$2,$3}' tab.txt 
aa bb cc

以一个或多个空格,:为分隔符:

awk -F[" ":]+ '{print $1,$2}' /etc/passwd

打印出第七行:

awk -F ":" 'NF==7{print $0}' /etc/passwd

取ip,思路:第二行,第四个字段:

ifconfig eth0 |awk -F["":] 'NR==2{print $4}'

第一个字段是root的,全部打印出来:

awk -F: '$1=="root"{print $0}' passwd

第一个字段,并且第五个字段也是root,打印出来:

awk -F: '($1=="root")&&($5=="root"){print $0}' passwd 

统计磁盘可用空间使用率:

 df -h | grep sda1 | awk '{print $5}' | tail -1 | tr -d %
19

 

posted @ 2016-05-23 20:33  唐胜伟  阅读(452)  评论(0编辑  收藏  举报