grep跨行匹配

口壤迅坎發表於2020-11-30

  grep-Pazo's upstream[w].com[sS]*?}$'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空格,和[ntrf]語法一樣

  s+和[ntrf]+一樣

  S非空格,和[^ntrf]語法一樣

  S+和[^ntrf]+語法一樣

  b匹配以英文字母,數字為邊界的字串

  B匹配不以英文字母,數值為邊界的字串

  a|b|c匹配符合a字元或是b字元或是c字元的字串

  abc匹配含有abc的字串(pattern)()這個符號會記住所找尋到的字串,是一個很實用的語法.第一個()內所找到的字串變成$1這個變數或是1變數,第二個()內所找到的字串變成$2這個變數或是2變數,以此類推下去.

  /pattern/i i這個參數列示忽略英文大小寫,也就是在匹配字串的時候,不考慮英文的大小寫問題.如果要在pattern模式中找尋一個特殊字元,如"*",則要在這個字元前加上符號,這樣才會讓特殊字元失效

  Perl特殊變數Perl傳送郵件


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69920894/viewspace-2738145/,如需轉載,請註明出處,否則將追究法律責任。

相關文章