精通awk系列(16):gawk支持的正則表達式


回到:linux


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不支持正則修飾符,因此沒法直接指定忽略大小寫的匹配。git

若是想要實現忽略大小寫匹配,則能夠將字符串先轉換爲大寫、小寫再進行匹配。或者設置預約義變量IGNORECASE爲非0值。shell

# 轉換爲小寫
awk 'tolower($0) ~ /bob/{print $0}' a.txt

# 設置IGNORECASE
awk '/BOB/{print $0}' IGNORECASE=1 a.txt
相關文章
相關標籤/搜索