Chinaunix首页 | 论坛 | 博客
  • 博客访问: 220055
  • 博文数量: 63
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 472
  • 用 户 组: 普通用户
  • 注册时间: 2014-12-11 14:36
文章分类

全部博文(63)

文章存档

2016年(2)

2015年(23)

2014年(38)

我的朋友

分类: 敏捷开发

2015-01-29 09:26:16

想要使用Shell或者Perl进行日志快速分析难免要用到AWK,所以在这里附上一份常用的,好温故知新啊。
awk -F":" '{if($1~/root/) print $1}' /etc/passwd 打印包含root的行
awk -F":" '/root/{print $1}' /etc/passwd 

  匹配root,并打印第一列
awk -F":" '$4==100 {print $0}' /etc/passwd  打印第四列等于100的行
awk -F":" '$1 !~ /root/ {print $0}' /etc/passwd   打印不包含root的行
awk -F":" '$1 != “root” {print $0}' /etc/passwd   打印第一列不等于root的行
awk -F":" '$3 < $4 {print $0}' /etc/passwd  如果第三列小于第四列,则打印此行
awk -F":" '$3 + $4 == 155 {print $0}' /etc/passwd   匹配两列之和为155
awk -F":" ' {print $3,$4,"Total is:"$3 + $4 }' /etc/passwd  打印两列相加结果
awk '/[Rr]oot/' /etc/passwd  区配某字段
awk '/^...s/' /etc/passwd     抽取名字,其记录第一域的第四个字符是a,使用句点.。表达式/ ^ . . . a /意为行首前三个字符任意,第四个是a,尖角符号代表行首
awk '/(root|net|ucp)/' /etc/passwd   匹配包含root或net或ucp的任意行
awk '/^[0-9]/' group.txt     匹配以数字开头的行
awk 'NR>0 && NR<10{print NR,$0}' passwd 打印0-10之间的行
awk -F: 'NF>7 {print NF,$0}' passwd  打印大于7列的行
awk -F: '{if (NF==8 && NR==31)print NR,$1}' passwd  如果第31行超过8列,就打印这一行的第1列
awk 'gsub(/root/,"admin") {print $0}' passwd 将包含/root的字段替换为admin
awk -F: 'length($1)==4 {print $0,length($1)}' passwd   如果第一列长度为4则打印此行
awk '$3==day {print $0}' day=`date +%d` /tmp/te.log   将命令传给awk

阅读(1084) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~