grep跨行匹配

grep -Pazo '\s upstream [\w].com[\s\S]*?}$' nginx.conf
輸出結果爲:
upstream ww.com
{
server
keepalive 50;
}





upstream  afdafv.com
{   
    server
    keepalive       100; 
}

參數詳解:
-P, --perl-regexp PATTERN 是一個 Perl 正則表達式
-a, --text equivalent to --binary-files=text
-o, --only-matching show only the part of a line matching PATTERN
-z, --null-data 一個 0 字節的數據行,但不是空行



Perl 正則表達式:

表達式 描述
. 匹配除換行符以外的所有字符
x? 匹配 0 次或一次 x 字符串
x 匹配 0 次或多次 x 字符串,但匹配可能的最少次數
x+ 匹配 1 次或多次 x 字符串,但匹配可能的最少次數
.

匹配 0 次或多次的任何字符
.+ 匹配 1 次或多次的任何字符
{m} 匹配剛好是 m 個 的指定字符串
{m,n} 匹配在 m個 以上 n個 以下 的指定字符串
{m,} 匹配 m個 以上 的指定字符串
[] 匹配符合 [] 內的字符
[^] 匹配不符合 [] 內的字符
[0-9] 匹配所有數字字符
[a-z] 匹配所有小寫字母字符
[^0-9] 匹配所有非數字字符
[^a-z] 匹配所有非小寫字母字符
^ 匹配字符開頭的字符
$ 匹配字符結尾的字符
\d 匹配一個數字的字符,和 [0-9] 語法一樣
\d+ 匹配多個數字字符串,和 [0-9]+ 語法一樣
\D 非數字,其他同 \d
\D+ 非數字,其他同 \d+
\w 英文字母或數字的字符串,和 [a-zA-Z0-9] 語法一樣
\w+ 和 [a-zA-Z0-9
]+ 語法一樣
\W 非英文字母或數字的字符串,和 [^a-zA-Z0-9] 語法一樣
\W+ 和 [^a-zA-Z0-9
]+ 語法一樣
\s 空格,和 [\n\t\r\f] 語法一樣
\s+ 和 [\n\t\r\f]+ 一樣
\S 非空格,和 [^\n\t\r\f] 語法一樣
\S+ 和 [^\n\t\r\f]+ 語法一樣
\b 匹配以英文字母,數字爲邊界的字符串
\B 匹配不以英文字母,數值爲邊界的字符串
a|b|c 匹配符合a字符 或是b字符 或是c字符 的字符串
abc 匹配含有 abc 的字符串 (pattern) () 這個符號會記住所找尋到的字符串,是一個很實用的語法.第一個 () 內所找到的字符串變成 $1 這個變量或是 \1 變量,第二個 () 內所找到的字符串變成 $2 這個變量或是 \2 變量,以此類推下去.
/pattern/i i 這個參數表示忽略英文大小寫,也就是在匹配字符串的時候,不考慮英文的大小寫問題. \ 如果要在 pattern 模式中找尋一個特殊字符,如 "*",則要在這個字符前加上 \ 符號,這樣纔會讓特殊字符失效
Perl 特殊變量 Perl 發送郵件






























發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章