中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

linux中awk、正則表達式、正則運算符怎么用

發布時間:2021-09-23 10:07:49 來源:億速云 閱讀:150 作者:小新 欄目:系統運維

小編給大家分享一下linux中awk、正則表達式、正則運算符怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

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

一、awk Extended Regular Expression (ERES)基礎表達式符號介紹

字符功能
+指定如果一個或多個字符或擴展正則表達式的具體值(在 +(加號)前)在這個字符串中,則字符串匹配。命令行:

awk '/smith+ern/' testfile

將包含字符 smit,后跟一個或多個 h 字符,并以字符 ern 結束的字符串的任何記錄打印至標準輸出。此示例中的輸出是:

smithern, harry smithhern, anne

?指定如果零個或一個字符或擴展正則表達式的具體值(在 ?(問號)之前)在字符串中,則字符串匹配。命令行:

awk '/smith?/' testfile

將包含字符 smit,后跟零個或一個 h 字符的實例的所有記錄打印至標準輸出。此示例中的輸出是:

smith, alan smithern, harry smithhern, anne smitters, alexis

|指定如果以 |(垂直線)隔開的字符串的任何一個在字符串中,則字符串匹配。命令行:

awk '/allen | alan /' testfile

將包含字符串 allenalan 的所有記錄打印至標準輸出。此示例中的輸出是:

smiley, allen smith, alan

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

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

將具有字符串 aealleanneallnne 的所有記錄打印至標準輸出。此示例中的輸出是:

smiley, allen smithhern, anne

{m}指定如果正好有 m 個模式的具體值位于字符串中,則字符串匹配。命令行:

awk '/l{2}/' testfile

打印至標準輸出

smiley, allen

{m,}指定如果至少 m 個模式的具體值在字符串中,則字符串匹配。命令行:

awk '/t{2,}/' testfile

打印至標準輸出:

smitters, alexis

{m, n}指定如果 mn 之間(包含的 m 和 n)個模式的具體值在字符串中(其中m <= n),則字符串匹配。命令行:

awk '/er{1, 2}/' testfile

打印至標準輸出:

smithern, harry smithern, anne smitters, alexis

[String]指定正則表達式與方括號內 String 變量指定的任何字符匹配。命令行:

awk '/sm[a-h]/' testfile

將具有 sm 后跟以字母順序從 ah 排列的任何字符的所有記錄打印至標準輸出。此示例的輸出是:

smawley, andy

[^ String]在 [ ](方括號)和在指定字符串開頭的 ^ (插入記號) 指明正則表達式與方括號內的任何字符匹配。這樣,命令行:

awk '/sm[^a-h]/' testfile

打印至標準輸出:

smiley, allen smith, alan smithern, harry smithhern, anne smitters, alexis

~,!~表示指定變量與正則表達式匹配(代字號)或不匹配(代字號、感嘆號)的條件語句。命令行:

awk '$1 ~ /n/' testfile

將第一個字段包含字符 n 的所有記錄打印至標準輸出。此示例中的輸出是:

smithern, harry smithhern, anne

^指定字段或記錄的開頭。命令行:

awk '$2 ~ /^h/' testfile

將把字符 h 作為第二個字段的第一個字符的所有記錄打印至標準輸出。此示例中的輸出是:

smithern, harry

$指定字段或記錄的末尾。命令行:

awk '$2 ~ /y$/' testfile

將把字符 y 作為第二個字段的最后一個字符的所有記錄打印至標準輸出。此示例中的輸出是:

smawley, andy smithern, harry

. (句號)表示除了在空白末尾的終端換行字符以外的任何一個字符。命令行:

awk '/a..e/' testfile

將具有以兩個字符隔開的字符 a 和 e 的所有記錄打印至標準輸出。此示例中的輸出是:

smawley, andy smiley, allen smithhern, anne

*(星號)表示零個或更多的任意字符。命令行:

awk '/a.*e/' testfile

將具有以零個或更多字符隔開的字符 a 和 e 的所有記錄打印至標準輸出。此示例中的輸出是:

smawley, andy smiley, allen smithhern, anne smitters, alexis

\ (反斜杠)轉義字符。當位于在擴展正則表達式中具有特殊含義的任何字符之前時,轉義字符除去該字符的任何特殊含義。例如,命令行:

/a\/\//

將與模式 a // 匹配,因為反斜杠否定斜杠作為正則表達式定界符的通常含義。要將反斜杠本身指定為字符,則使用雙反斜杠。有關反斜杠及其使用的更多信息,請參閱以下關于轉義序列的內容。


與PERs相比,主要是一些結合類型表示符沒有了:包括:”\d,\D,\s,\S,\t,\v,\n,\f,\r”其它功能基本一樣的。 我們常見的軟件:javascript,.net,java支持的正則表達式,基本上是:EPRs類型。

二、awk 常見調用正則表達式方法

awk語句中:

awk &lsquo;/REG/{action}&rsquo;
/REG/為正則表達式,可以將$0中,滿足條件記錄 送入到:action進行處理.

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

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

awk內置使用正則表達式函數

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

以上是“linux中awk、正則表達式、正則運算符怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

讷河市| 江川县| 台前县| 沾益县| 惠来县| 常宁市| 福州市| 丰镇市| 尉犁县| 永福县| 进贤县| 前郭尔| 洛宁县| 萨迦县| 锡林浩特市| 梅州市| 洱源县| 托克托县| 封丘县| 福贡县| 龙胜| 澜沧| 固安县| 左权县| 孟州市| 赤壁市| 平江县| 巴东县| 开封市| 孝义市| 乌鲁木齐县| 原平市| 麻栗坡县| 阳新县| 鄂托克旗| 永宁县| 阳谷县| 满城县| 始兴县| 法库县| 江北区|