awk匹配操作符

匹配操作符(~)用于对记录字段的表达式进行匹配。
范例

cat employees
Tom   Jones  4424  5 / 12 / 66  543354
Mary  Adams  5346  11 / 4 / 63  28765
Sally Chang  1654  7 / 22 / 54  650000
Billy Black  1683  9 / 23 / 44  336500
$ awk  '$1 ~ /[Bb]ill/' employees
Billy Black  1683  9 / 23 / 44  336500

说明:显示所有在第一个字段里匹配到Bill或bill的行。

POSIX字符类 POSIX(the Portable Operating System Interface,可移植操作系统接口)是一种工业标准,确保程序可以跨操作系统移植。为了保证可移植, POSIX可以识别字符、阿拉伯数字和符号在不同国家或不同场合的编码方法,以及时间和时期的不同表示。为了处理不同类型的字符,POSIX增加了基本的和扩展的正则表达式,下表对括号字符类进行了说明。对于UNIX,gawk支持这些新的元字符类,而awk不支持;而对于Linux,则应当明白awk是链接到gawk上的,也就是说awk和gawk的命令同样有效。

POSIX增加的括号字符类

括号类 含义
[:alnum:] 字母数字字符
[:alpha:] 字母字符
[:cntrl:] 控制字符
[:digit:] 数字字符
[:graph:] 非空白字符(非空格、控制字符等)
[:lower:] 小写字母
[:print:] 与[:graph:]相似,但是包含空格字符
[:punct:] 标点字符
[:space:] 所有的空白字符(换行符、空格、制表符)
[:upper:] 大写字母
[:xdigit:] 允许十六进制的数字(0-9a-fA-F)

在类中, [:alnum:]是另一种表示A-Z、a-z和0-9的形式,使用这种类时,必须要用另外一个方括号扩起来,例如"A-Za-z0-9" 自己本身不是正则表达式,而[A-Za-z0-9]则是正则表达式。类似地,[:alnum:] 应该写为[[:alnum:]] 。第一种形式[A-Za-z0-9]与方括号形式[[:alnum:]] 的不同之处在于,前者依赖于ASCII字符编码的形式,而第二种形式允许其他语言的字符在类中表示,例如瑞典语和德语。

参考文章:http://www.linuxawk.com/jiaocheng/134.html


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值