精通awk系列(16):gawk支持的正则表达式
程序员文章站
2023-12-26 18:07:09
回到: "Linux系列文章" "Shell系列文章" "Awk系列文章" gawk支持的正则 . 匹配任意字符,包括换行符 ^ $ [...] [^...] | + ? () {m} {m,} {m,n} {,n} [:lower:] [:upper:] [:alpha:] [:digit:] [ ......
回到:
gawk支持的正则
. # 匹配任意字符,包括换行符 ^ $ [...] [^...] | + * ? () {m} {m,} {m,n} {,n} [:lower:] [:upper:] [:alpha:] [:digit:] [:alnum:] [:xdigit:] [:blank:] [:space:] [:punct:] [:graph:] [:print:] [:cntrl:] 以下是gawk支持的: \y 匹配单词左右边界部分的空字符位置 "hello world" \b 和\y相反,匹配单词内部的空字符位置,例如"crate" ~ `/c\brat\be/`成功 \< 匹配单词左边界 \> 匹配单词右边界 \s 匹配空白字符 \s 匹配非空白字符 \w 匹配单词组成字符(大小写字母、数字、下划线) \w 匹配非单词组成字符 \` 匹配字符串的绝对行首 "abc\ndef" \' 匹配字符串的绝对行尾
gawk不支持正则修饰符,所以无法直接指定忽略大小写的匹配。
如果想要实现忽略大小写匹配,则可以将字符串先转换为大写、小写再进行匹配。或者设置预定义变量ignorecase为非0值。
# 转换为小写 awk 'tolower($0) ~ /bob/{print $0}' a.txt # 设置ignorecase awk '/bob/{print $0}' ignorecase=1 a.txt