主頁 > 知識(shí)庫 > linux awk 正則表達(dá)式、正則運(yùn)算符詳細(xì)介紹

linux awk 正則表達(dá)式、正則運(yùn)算符詳細(xì)介紹

熱門標(biāo)簽:商店地圖標(biāo)注外賣入駐 新科火車站地圖標(biāo)注點(diǎn) 桂林市ai電銷機(jī)器人公司 地圖標(biāo)注的牌子 制作地圖標(biāo)注 外呼系統(tǒng)怎么弄 磁力導(dǎo)航地圖標(biāo)注 外呼系統(tǒng)鏈接 地址高德地圖標(biāo)注

使用awk作為文本處理工具,正則表達(dá)式是少不了的。 要掌握這個(gè)工具的正則表達(dá)式使用。其實(shí),我們不必單獨(dú)去學(xué)習(xí)它的正則表達(dá)式。正則表達(dá)式就像一門程序語言,有自己語法規(guī)則已經(jīng)表示意思。 對(duì)于不同工具,其實(shí)大部分表示意思相同的。在linux眾多文本處理工具(awk,sed,grep,perl)里面用到正則表達(dá)式。其實(shí)就只有3種類型。詳細(xì)可以參考:linux shell 正則表達(dá)式(BREs,EREs,PREs)差異比較 。只要是某些工具是屬于某種類型的正則表達(dá)式。那么它的語法規(guī)則基本一樣。 通過那篇文章,我們知道awk的正則表達(dá)式,是屬于:擴(kuò)展的正則表達(dá)式(Extended Regular Expression 又叫 Extended RegEx 簡(jiǎn)稱 EREs)。

一、awk Extended Regular Expression (ERES)基礎(chǔ)表達(dá)式符號(hào)介紹

字符 功能
+ 指定如果一個(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

將包含字符串 allenalan 的所有記錄打印至標(biāo)準(zhǔn)輸出。此示例中的輸出是:

smiley, allen smith, alan

( ) 在正則表達(dá)式中將字符串組合在一起。命令行:

awk '/a(ll)?(nn)?e/' testfile

將具有字符串 aealleanneallnne 的所有記錄打印至標(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} 指定如果 mn 之間(包含的 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 后跟以字母順序從 ah 排列的任何字符的所有記錄打印至標(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語句中:


復(fù)制代碼
代碼如下:

awk ‘/REG/{action}’
/REG/為正則表達(dá)式,可以將$0中,滿足條件記錄 送入到:action進(jìn)行處理.

awk正則運(yùn)算語句(~,~!等同!~)


復(fù)制代碼
代碼如下:

[chengmo@centos5 ~]$ awk 'BEGIN{info="this is a test";if( info ~ /test/){print "ok"}}'
ok

awk內(nèi)置使用正則表達(dá)式函數(shù)


復(fù)制代碼
代碼如下:

gsub( Ere, Repl, [ In ] )
sub( Ere, Repl, [ In ] )
match( String, Ere )
split( String, A, [Ere] )

詳細(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)。
  • 相關(guān)文章
  • 下面列出與本文章《linux awk 正則表達(dá)式、正則運(yùn)算符詳細(xì)介紹》相關(guān)的同類信息!
  • 本頁收集關(guān)于linux awk 正則表達(dá)式、正則運(yùn)算符詳細(xì)介紹的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章