awk匹配操作符

来源:互联网 发布:淘宝假发 编辑:程序博客网 时间:2024/06/01 16:01

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

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
原创粉丝点击