Chinaunix首页 | 论坛 | 博客
  • 博客访问: 492909
  • 博文数量: 71
  • 博客积分: 1332
  • 博客等级: 少尉
  • 技术积分: 772
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-10 16:25
个人简介

文章分类

全部博文(71)

文章存档

2013年(19)

2012年(9)

2011年(43)

分类: Python/Ruby

2011-04-03 23:31:39


1、awk的使用规则,是需要注意的地方:


1.1、用单引号括起命令,单双引号成对的出现

1.2、大括号{}括起来的是动作,小括号()括起的是条件

1.3、用双斜线//括起来的是正则表达式

1.4、引用变量不用加双引号


2、匹配正则表达式:


2.1、匹配使用 ~ ,不匹配使用 !~ ,精确匹配使用 == ,注意的是~和!~和双斜线 // 配合,== 和 "" 配合(这里指和字符串进行匹配时,和数值匹配时 == 不要加双引号)


  1. # echo -e "aa bb cc dd\nee ff g1g aa" | awk '$0~/aa/'   # 记录中包含aa
  2. aa bb cc dd
  3. ee ff gg aa


  1. # echo -e "aa bb cc dd\nee ff g1g aa" | awk '$0~/g1/'   # 记录中包含个g1
  2. ee ff g1g aa
  3. # echo -e "aa bb cc dd\nee ff g1g aa" | awk '$0~/g1g/'  # 记录中包含个g1g
  4. ee ff g1g aa


  1. # echo -e "aa bb cc dd\nee ff g1g aa" | awk '$3=="g1"'  # $3为g1
  2. (这里没有结果)
  3. # echo -e "aa bb cc dd\nee ff g1g aa" | awk '$3=="g1g"' # $3为g1g
  4. ee ff g1g aa


  1. # echo -e "aa bb cc dd\nee ff g1g aa" | awk '$3==g1'    # 未加双引号
  2. (这里没有结果)
  3. # echo -e "aa bb cc dd\nee ff g1g aa" | awk '$3==g1g'   # 未加双引号
  4. (这里没有结果)


和数值匹配时 == 不要加双引号


  1. # echo -e "aa bb cc dd\nee ff 5 aa" | awk '$3==5'
  2. ee ff 5 aa

2.2 中括号 [] 使用


  1. # echo -e "1 2 3\n4 a 5" | awk '$0~/[a-zA-Z]/'
  2. 4 a 5
  3. # echo -e "1 2 3\n4 a 5" | awk '$0~/[b-zA-Z]/'
  4. (这里没有结果)



2.3、&& || 使用


&&  两边同时匹配为真



  1. # echo -e "1 2 3\n4 a 5" | awk '$1==1 && $2==2'
  2. 1 2 3
  3. # echo -e "1 2 3\n4 a 5" | awk '$1==1 && $2==3'
  4. (这里没有结果)


|| 一边匹配为真


  1. # echo -e "1 2 3\n4 a 5" | awk '$1==1 || $2==3'
  2. 1 2 3
  3. # echo -e "1 2 3\n4 a 5" | awk '$1==1 || $2==2'
  4. 1 2 3
  5. # echo -e "1 2 3\n4 a 5" | awk '$1==3 || $2==3'
  6. (这里没有结果)







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