AIX下AWK语言中使用正则表达式AIX下AWK语言中使用正则表达式
在awk命令中使用正则表达式
awk中可以使用正则表达式,元字符如下:
\,^,.,[],|,(),*,+,?
+:匹配一个或多个字符
?:匹配模式出现频率,/XY?Z/匹配XYZ,YZ
条件操作符
操作符 描述
——————————— ———————————————
= 大于等于
~ 匹配正则表达式
!~ 不匹配正则表达式
1.匹配
grade.txt文件中,第四列的包含Brown的行:
awk '{if($4~/Brown/) print $0}'...
AIX下AWK语言中使用正则表达式
在awk命令中使用正则表达式
awk中可以使用正则表达式,元字符如下:
\,^,.,[],|,(),*,+,?
+:匹配一个或多个字符
?:匹配模式出现频率,/XY?Z/匹配XYZ,YZ
条件操作符
操作符 描述
——————————— ———————————————
< 小于
<= 小于等于
== 等于
!= 不等于
>= 大于等于
~ 匹配正则表达式
!~ 不匹配正则表达式
1.匹配
grade.txt文件中,第四列的包含Brown的行:
awk '{if($4~/Brown/) print $0}' grade.txt J.Troll 07/99 4842 Brown-3 12 26 26 L.Tansley 05/99 4712 Brown-2 12 30 28 只要包含Brown,就打印数据:
awk '$0 ~ /Brown/' grade.txt
J.Troll 07/99 4842 Brown-3 12 26 26 L.Tansley 05/99 4712 Brown-2 12 30 28
2.精确匹配
打印第三列包含42的行:
awk '{if($3~/42/) print $0}' grade.txt J.Troll 07/99 4842 Brown-3 12 26 26 打印第三列包含48的行:
awk '$3==48 {print $0}' grade.txt
P.Bunny 02/99 48 Yello 12 35 28
3.不匹配
打印第三列不包含48的行:
awk '$3!~48 {print $0}' grade.txt
L.Tansley 05/99 4712 Brown-2 12 30 28 查看所有的行:
pg grade.txt
M.Tansley 05/99 48311 Green 8 40 44
J.Lulu 06/99 48317 green 9 24 26 P.Bunny 02/99 48 Yello 12 35 28 J.Troll 07/99 4842 Brown-3 12 26 26 L.Tansley 05/99 4712 Brown-2 12 30 28 打印不包含Brown的行:
awk '$0 !~/Brown/' grade.txt
M.Tansley 05/99 48311 Green 8 40 44 J.Lulu 06/99 48317 green 9 24 26 P.Bunny 02/99 48 Yello 12 35 28 打印第四个域不包含"Brown-2"的行:
awk '$4 != "Brown-2" {print $0}' grade.txt M.Tansley 05/99 48311 Green 8 40 44 J.Lulu 06/99 48317 green 9 24 26 P.Bunny 02/99 48 Yello 12 35 28 J.Troll 07/99 4842 Brown-3 12 26 26
4.大于
awk '{if($6 > $7) print $1}' grade.txt P.Bunny
L.Tansley
5.小于
awk '{if( $6 < $7 ) print $0}' grade.txt M.Tansley 05/99 48311 Green 8 40 44 J.Lulu 06/99 48317 green 9 24 26
6.大小写
awk '/[Gg]reen/' grade.txt
M.Tansley 05/99 48311 Green 8 40 44 J.Lulu 06/99 48317 green 9 24 26
7.任意字符
行首第四个字符为a的行
awk '$1 ~/^...a/' grade.txt
M.Tansley 05/99 48311 Green 8 40 44 L.Tansley 05/99 4712 Brown-2 12 30 28
8.或关系匹配
行中包含Yellow或者Brown:
awk '$0 ~/(Yellow|Brown)/' grade.txt
J.Troll 07/99 4842 Brown-3 12 26 26 L.Tansley 05/99 4712 Brown-2 12 30 28 行中包含G(g)reen:
awk '$0 ~/(G|g)reen/' grade.txt
M.Tansley 05/99 48311 Green 8 40 44 J.Lulu 06/99 48317 green 9 24 26
9.行首:^
10.&& and
awk '{if ($1=="P.Bunny" && $4=="Yello") print $0}' grade.txt
P.Bunny 02/99 48 Yello 12 35 28
11.|| or
awk '{if ($4=="Yello" || $4~/Brown/) print $0}' grade.txt
P.Bunny 02/99 48 Yello 12 35 28 J.Troll 07/99 4842 Brown-3 12 26 26 L.Tansley 05/99 4712 Brown-2 12 30 28
12.!
awk '$0 !~/2/' grade.txt
M.Tansley 05/99 48311 Green 8 40 44
本文档为【AIX下AWK语言中使用正则表达式】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。