雨
分类: Python/Ruby
2011-04-03 23:31:39
1、awk的使用规则,是需要注意的地方:
1.1、用单引号括起命令,单双引号成对的出现
1.2、大括号{}括起来的是动作,小括号()括起的是条件
1.3、用双斜线//括起来的是正则表达式
1.4、引用变量不用加双引号
2、匹配正则表达式:
2.1、匹配使用 ~ ,不匹配使用 !~ ,精确匹配使用 == ,注意的是~和!~和双斜线 // 配合,== 和 "" 配合(这里指和字符串进行匹配时,和数值匹配时 == 不要加双引号)
- # echo -e "aa bb cc dd\nee ff g1g aa" | awk '$0~/aa/' # 记录中包含aa
- aa bb cc dd
- ee ff gg aa
- # echo -e "aa bb cc dd\nee ff g1g aa" | awk '$0~/g1/' # 记录中包含个g1
- ee ff g1g aa
- # echo -e "aa bb cc dd\nee ff g1g aa" | awk '$0~/g1g/' # 记录中包含个g1g
- ee ff g1g aa
- # echo -e "aa bb cc dd\nee ff g1g aa" | awk '$3=="g1"' # $3为g1
- (这里没有结果)
- # echo -e "aa bb cc dd\nee ff g1g aa" | awk '$3=="g1g"' # $3为g1g
- ee ff g1g aa
- # echo -e "aa bb cc dd\nee ff g1g aa" | awk '$3==g1' # 未加双引号
- (这里没有结果)
- # echo -e "aa bb cc dd\nee ff g1g aa" | awk '$3==g1g' # 未加双引号
- (这里没有结果)
和数值匹配时 == 不要加双引号
- # echo -e "aa bb cc dd\nee ff 5 aa" | awk '$3==5'
- ee ff 5 aa
2.2 中括号 [] 使用
- # echo -e "1 2 3\n4 a 5" | awk '$0~/[a-zA-Z]/'
- 4 a 5
- # echo -e "1 2 3\n4 a 5" | awk '$0~/[b-zA-Z]/'
- (这里没有结果)
2.3、&& || 使用
&& 两边同时匹配为真
- # echo -e "1 2 3\n4 a 5" | awk '$1==1 && $2==2'
- 1 2 3
- # echo -e "1 2 3\n4 a 5" | awk '$1==1 && $2==3'
- (这里没有结果)
|| 一边匹配为真
- # echo -e "1 2 3\n4 a 5" | awk '$1==1 || $2==3'
- 1 2 3
- # echo -e "1 2 3\n4 a 5" | awk '$1==1 || $2==2'
- 1 2 3
- # echo -e "1 2 3\n4 a 5" | awk '$1==3 || $2==3'
- (这里没有结果)