回到: "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