字符 | 功能 |
---|---|
+ | 指定如果一個(gè)或多個(gè)字符或擴(kuò)展正則表達(dá)式的具體值(在 +(加號(hào))前)在這個(gè)字符串中,則字符串匹配。命令行:
awk '/smith+ern/' testfile 將包含字符 smit,后跟一個(gè)或多個(gè) h 字符,并以字符 ern 結(jié)束的字符串的任何記錄打印至標(biāo)準(zhǔn)輸出。此示例中的輸出是: smithern, harry smithhern, anne |
? | 指定如果零個(gè)或一個(gè)字符或擴(kuò)展正則表達(dá)式的具體值(在 ?(問號(hào))之前)在字符串中,則字符串匹配。命令行:
awk '/smith?/' testfile 將包含字符 smit,后跟零個(gè)或一個(gè) h 字符的實(shí)例的所有記錄打印至標(biāo)準(zhǔn)輸出。此示例中的輸出是: smith, alan smithern, harry smithhern, anne smitters, alexis |
| | 指定如果以 |(垂直線)隔開的字符串的任何一個(gè)在字符串中,則字符串匹配。命令行:
awk '/allen | alan /' testfile 將包含字符串 allen 或 alan 的所有記錄打印至標(biāo)準(zhǔn)輸出。此示例中的輸出是: smiley, allen smith, alan |
( ) | 在正則表達(dá)式中將字符串組合在一起。命令行:
awk '/a(ll)?(nn)?e/' testfile 將具有字符串 ae 或 alle 或 anne 或 allnne 的所有記錄打印至標(biāo)準(zhǔn)輸出。此示例中的輸出是: smiley, allen smithhern, anne |
{m} | 指定如果正好有 m 個(gè)模式的具體值位于字符串中,則字符串匹配。命令行:
awk '/l{2}/' testfile 打印至標(biāo)準(zhǔn)輸出 smiley, allen |
{m,} | 指定如果至少 m 個(gè)模式的具體值在字符串中,則字符串匹配。命令行:
awk '/t{2,}/' testfile 打印至標(biāo)準(zhǔn)輸出: smitters, alexis |
{m, n} | 指定如果 m 和 n 之間(包含的 m 和 n)個(gè)模式的具體值在字符串中(其中m = n),則字符串匹配。命令行:
awk '/er{1, 2}/' testfile 打印至標(biāo)準(zhǔn)輸出: smithern, harry smithern, anne smitters, alexis |
[String] | 指定正則表達(dá)式與方括號(hào)內(nèi) String 變量指定的任何字符匹配。命令行:
awk '/sm[a-h]/' testfile 將具有 sm 后跟以字母順序從 a 到 h 排列的任何字符的所有記錄打印至標(biāo)準(zhǔn)輸出。此示例的輸出是: smawley, andy |
[^ String] | 在 [ ](方括號(hào))和在指定字符串開頭的 ^ (插入記號(hào)) 指明正則表達(dá)式與方括號(hào)內(nèi)的任何字符不匹配。這樣,命令行:
awk '/sm[^a-h]/' testfile 打印至標(biāo)準(zhǔn)輸出: smiley, allen smith, alan smithern, harry smithhern, anne smitters, alexis |
~,!~ | 表示指定變量與正則表達(dá)式匹配(代字號(hào))或不匹配(代字號(hào)、感嘆號(hào))的條件語句。命令行:
awk '$1 ~ /n/' testfile 將第一個(gè)字段包含字符 n 的所有記錄打印至標(biāo)準(zhǔn)輸出。此示例中的輸出是: smithern, harry smithhern, anne |
^ | 指定字段或記錄的開頭。命令行:
awk '$2 ~ /^h/' testfile 將把字符 h 作為第二個(gè)字段的第一個(gè)字符的所有記錄打印至標(biāo)準(zhǔn)輸出。此示例中的輸出是: smithern, harry |
$ | 指定字段或記錄的末尾。命令行:
awk '$2 ~ /y$/' testfile 將把字符 y 作為第二個(gè)字段的最后一個(gè)字符的所有記錄打印至標(biāo)準(zhǔn)輸出。此示例中的輸出是: smawley, andy smithern, harry |
. (句號(hào)) | 表示除了在空白末尾的終端換行字符以外的任何一個(gè)字符。命令行:
awk '/a..e/' testfile 將具有以兩個(gè)字符隔開的字符 a 和 e 的所有記錄打印至標(biāo)準(zhǔn)輸出。此示例中的輸出是: smawley, andy smiley, allen smithhern, anne |
*(星號(hào)) | 表示零個(gè)或更多的任意字符。命令行:
awk '/a.*e/' testfile 將具有以零個(gè)或更多字符隔開的字符 a 和 e 的所有記錄打印至標(biāo)準(zhǔn)輸出。此示例中的輸出是: smawley, andy smiley, allen smithhern, anne smitters, alexis |
\ (反斜杠) | 轉(zhuǎn)義字符。當(dāng)位于在擴(kuò)展正則表達(dá)式中具有特殊含義的任何字符之前時(shí),轉(zhuǎn)義字符除去該字符的任何特殊含義。例如,命令行:
/a\/\// 將與模式 a // 匹配,因?yàn)榉葱备芊穸ㄐ备茏鳛檎齽t表達(dá)式定界符的通常含義。要將反斜杠本身指定為字符,則使用雙反斜杠。有關(guān)反斜杠及其使用的更多信息,請(qǐng)參閱以下關(guān)于轉(zhuǎn)義序列的內(nèi)容。 |
與PERs相比,主要是一些結(jié)合類型表示符沒有了:包括:”\d,\D,\s,\S,\t,\v,\n,\f,\r”其它功能基本一樣的。 我們常見的軟件:javascript,.net,java支持的正則表達(dá)式,基本上是:EPRs類型。
二、awk 常見調(diào)用正則表達(dá)式方法
awk語句中:
awk正則運(yùn)算語句(~,~!等同!~)
awk內(nèi)置使用正則表達(dá)式函數(shù)
詳細(xì)函數(shù)使用,可以參照:linux awk 內(nèi)置函數(shù)詳細(xì)介紹(實(shí)例)
通過上面細(xì)述,不知道大家有沒有對(duì)awk正則表達(dá)式有一個(gè)更加清楚的認(rèn)識(shí)。 有什么問題可以與我交流!
標(biāo)簽:衡陽 湘西 慶陽 六盤水 仙桃 三門峽 茂名 衡陽
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《linux awk 正則表達(dá)式、正則運(yùn)算符詳細(xì)介紹》,本文關(guān)鍵詞 linux,awk,正則,表達(dá)式,運(yùn)算符,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。