shell 5 正規表示式 doc

2021-05-09 15:29:56 字數 2032 閱讀 5875

regular expression engine

描述匹配模式的特殊字元和一般字元組成;

bre posix

基本正規表示式,

ere擴充套件正規表示式;

gawk

支援ere

,sed

不支援。

1)

正規表示式模式:l

區分大小寫 l

空格作為普通字元處理 l

工具或語言中的使用模式常為

/pattern/

特殊字元:

.*^${}/+?|()

正斜扛也需要轉義,雖然它不是特殊字元——因為

/被用作表示模式? 如

sed -n '/^abc/p';^

必須放到正規表示式的最前,否則作為普通字元

sed -n '/abc$/p';

eg:查詢整行

, '/^this$/p'

;查詢空行

'/^$/d';

匹配換行符外的任何單字元,必須有乙個字元;

character class

(幾個字元之一),如

sed -n '/[yy]es/p'

否定字元類,使用

[^],如

[^ch]

,表示不含這幾個字元,但是仍然需要乙個字元;

定義字元範圍,如

[0-9]

,[a-z]

,[a-cx-z

]定義多個範圍

[[:alpha:]]      

任意字母字元,大小寫

[[:alnum:]]     

任意字母、數字

[[:blank:]]     

空格或製表符

[[:digit:]]        數字

[[:lower:]]     

任意小寫

[[:print:]]      

任意可列印

[[:punct:]]     

標點符號

[[:space:]]     

任意空白字元,

包括垂直製表符,

如空格,lt,

nl,cr等

[[:upper:]]     

任意大寫

[[:cntrl:]]       ascii

控制字元

[[:graph:]]      

非控制非空格

[[:xdigit:]]       16

進製數字 *

前的字元可不出現或多次出現,

/colou*r/ 「

.*」,出現在一行文字上任意位置的單詞 *

用於字元類:

eg: $echo "bt" | sed -n '/b[ac]*t/p'              #tbd

:ac可任意出現? 同

*的不同:不出現或僅出現一次,也可與字元類連用 同

*的不同:必須出現一次或多次

對可重複字元出現次數進行限制

(interval),或

,/,{m,

}表示最少m次

bet    #

等價於bet ?

gawk

中需指定引數

--re-interval,

eg:

echo "bt"|gawk --re-interval '/bet/'

用於字元類:

gawk --re-interval "/b[ae]t" 邏輯

or,指定多個正規表示式,

gawk '/cat|dog/'

分組,乙個組合作為乙個標準字元處理,

eg:

gawk '/sat(urday)?/        #

要求urday

出現0 到1

次; gawk '/(c|b)a(b/t)/'               #tbd

:等價於

'[cb]a[bt]'??

shell正規表示式

句點 匹配單字元 1 匹配任意單ascii 字元,可以為字母,或為數字。2 舉例 xc.匹配dexc1t 23xcdf 等,w.w.w.匹配rwxrw rw 行首以 匹配字串或字串行 1 允許在一行的開始匹配字元或單詞。2 舉例 01 匹配0011cx4 c01sdf 等,d 匹配drwxr xr ...

shell正規表示式

句點 匹配單字元 1 匹配任意單ascii 字元,可以為字母,或為數字。2 舉例 xc.匹配dexc1t 23xcdf 等,w.w.w.匹配rwxrw rw 行首以 匹配字串或字串行 1 允許在一行的開始匹配字元或單詞。2 舉例 01 匹配0011cx4 c01sdf 等,d 匹配drwxr xr ...

shell 正規表示式

一 從頭開始 echo the book sed n the p 二 結尾 三 聯合定位 this is a test 四 點字元 用於匹配除換行符之外的任何乙個單一字元 五 字元類 定義一類字元,用於匹配文字模式中的某一位置 例如 echo n ch at p data the cat is sl...