– Start
如果你还不知道什么是正则表达式或者不是很清楚,请先阅读正则表达式精萃。
awk 支持如下元字符。
\a 响铃
\b 退格
\f 换页
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
\ddd 8进制数字
\xhex 16进制数字
\\ 反斜线
[abc] 匹配a或b或c
[^abc] 匹配abc之外的任何单个字符
[a-zA-Z] 匹配a到z或A到Z的任何单个字符
\w 组成单词的字符,等价于[a-zA-Z_0-9]
\W 不是组成单词的字符,等价于[^\w]
\y 单词边界
\B 非单词边界
\< 单词的起始位置
\> 单词的结束位置
. 任何字符,包括换行符
^ 字符串首
$ 字符串行尾
a|b|c 匹配a或b或c
X? 匹配X 0次或1次
X* 匹配X 0次或无数次
X+ 匹配X 1次或无数次
X{n} 匹配X n次
X{n,} 匹配X 至少n次
X{n,m} 匹配X 至少n次至多m次. 需要指定 --re-interval
(...) 分组或捕获
上面介绍的正则表达式有个缺陷,它只能匹配英语,如果你想匹配其他语言,你可以使用标准的 POSIX 语法,如下。
[[:alnum:]] 字母和数字
[[:alpha:]] 字母
[[:lower:]] 小写字母
[[:upper:]] 大写字母
[[:digit:]] 数字
[[:blank:]] 空格和制表符
[[:space:]] 空白字符
[[:graph:]] 非空白字符
[[:print:]] 类似[[:graph:]],但是包含空白字符
[[:punct:]] 标点符号
[[:cntrl:]] 控制字符
[[:xdigit:]] 十六进制中容许出现的数字(例如 0-9a-fA-f)
[. xx .] 将 xx 作为一个整体匹配, xx 可以是任何字母
[= e =] 认为等价,在法语中匹配 e, è, 或 é
– 更多参见:awk 精萃
– 声 明:转载请注明出处
– Last Updated on 2015-10-28
– Written by ShangBo on 2015-10-28
– End