国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux Grep 正則表達(dá)式

這篇具有很好參考價(jià)值的文章主要介紹了Linux Grep 正則表達(dá)式。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

grep是Linux中用于文本處理的最有用和功能最強(qiáng)大的命令之一。grep在一個(gè)或多個(gè)輸入文件中搜索與正則表達(dá)式匹配的行,并將每條匹配的行寫(xiě)入到標(biāo)準(zhǔn)輸出

正則表達(dá)式是與一組字符串匹配的模式。模式由運(yùn)算符,文字字符和元字符組成,它們具有特殊的含義。GNU grep支持三種正則表達(dá)式語(yǔ)法Basic,Extended和Perl-compatible。

當(dāng)沒(méi)有給出正則表達(dá)式類(lèi)型時(shí),grep以Basic的形式調(diào)用,grep將搜索模式解釋為基本Basic正則表達(dá)式。要將模式解釋為擴(kuò)展Extended的正則表達(dá)式,請(qǐng)使用-E/–extended-regexp選項(xiàng)。

在GNU grep的實(shí)現(xiàn)中,基本正則表達(dá)式和擴(kuò)展正則表達(dá)式語(yǔ)法之間在功能上沒(méi)有區(qū)別,且兩者一樣。

唯一的區(qū)別是,在基本正則表達(dá)式中的元字符?,+,{,|,(和)被解釋為文字字符,即不將這些字符作為正則解釋。

為了在使用基本正則表達(dá)式時(shí)保持元字符的特殊含義,必須使用反斜杠\對(duì)字符進(jìn)行轉(zhuǎn)義。稍后我們將解釋這些和其他元字符的含義。

通常,您應(yīng)始終將正則表達(dá)式括在單引號(hào)中,以避免shell解釋和執(zhí)行元字符在shell在意義。

字符匹配

grep命令的最基本用法是在文件中搜索字符或字符串。除了在可以搜索文件的內(nèi)容之外,grep還可以搜索標(biāo)準(zhǔn)輸入的內(nèi)容。

例如要搜索使用bash作為默認(rèn)的登錄shell用戶,則可以在/etc/passwd文件中搜索包含bash字符串的所有行。

以下grep命令將搜索文件的內(nèi)容,然后打印包含使用bash作為登錄shell的用戶:

grep bash /etc/passwd

輸出應(yīng)如下所示:

root:x:0:0:root:/root:/bin/bash
myfreax:x:1000:1000:myfreax:/home/myfreax:/bin/bash

在此示例中,字符串bash是一個(gè)基本的正則表達(dá)式,由四個(gè)字符組成。這告訴grep搜索緊隨其后的b,a,s,h字符串。

默認(rèn)情況下,grep命令區(qū)分大小寫(xiě)。這意味著將大寫(xiě)和小寫(xiě)字符視為不同的字符。要在搜索時(shí)忽略大小寫(xiě),請(qǐng)使用-i/–ignore-case選項(xiàng)。

值得一提的是grep將搜索模式作為字符串而不是單詞進(jìn)行搜索/查找。因此,如果您要搜索gnu,grep還將打印在較大的單詞中嵌入gnu的行。例如cygnus或magnum。

如果搜索一個(gè)完全限定的字符串或者包含空格的字符串,則需要將其用單引號(hào)或雙引號(hào)引起來(lái),這:

grep "Gnome Display Manager" /etc/passwd

行頭與行尾

^ 脫字符號(hào)表示與行的開(kāi)頭的字符串匹配。如果正則表達(dá)式以^ 開(kāi)頭,grep將在每行的開(kāi)頭開(kāi)始匹配^之后的字符串。

以下grep命令將從文件file.txt中搜索以字符串linux開(kāi)頭的行:

grep '^linux' file.txt

$ 美元符號(hào)與行的結(jié)尾字符串匹配。$ 之后表示你需要搜索的內(nèi)容。grep將在每行的行尾匹配$之后的字符串。

以下grep命令將從文件file.txt中搜索以字符串linux結(jié)尾的行:

grep 'linux$' file.txt

除了搜索行的開(kāi)頭和結(jié)尾,您還可以組合使用由^關(guān)鍵詞$構(gòu)造的正則表達(dá)式。將允許搜索指定的內(nèi)容,不是嵌入大字符串匹配的行。

另一個(gè)有用的例子是組合使用^$模式匹配所有空行,即開(kāi)頭與結(jié)束都沒(méi)有內(nèi)容。這在查找空行時(shí)特別有用。

以下grep命令將從文件file.txt中搜索僅包含linux的行:

grep '^linux$' file.txt

匹配單個(gè)字符

. 符號(hào)是與任何單個(gè)字符匹配的元字符。

例如,要包括kan,然后有兩個(gè)字符并以字符串roo”結(jié)尾的任何內(nèi)容,則可以使用以下模式:

grep 'kan..roo' file.txt

中括號(hào)表達(dá)式

[] 中括號(hào)表達(dá)式允許將字符括在中括號(hào) [] 來(lái)匹配一組字符。即從中括號(hào) [] 內(nèi)的字符串任意使用一個(gè)字符來(lái)匹配行。

例如,以下grep命令將從文件file.txt中搜索包含accept或accent的行:

grep 'acce[np]t' file.txt

如果方括號(hào)內(nèi)的第一個(gè)字符是符號(hào)^,則它將匹配方括號(hào)中未括起來(lái)的任意字符。

以下模式將匹配包含除l之外的co.a字符串,.表示任意字符。例如coca,cobalt的任意字符串組合,但不匹配包含cola的行 。

例如,以下grep命令將從文件file.txt中搜索不cola的行:

grep 'co[^l]a' file.txt

您可以通過(guò)指定以連字符分隔的范圍的第一個(gè)和最后一個(gè)字符來(lái)構(gòu)造范圍表達(dá)式,在中括號(hào)表達(dá)式內(nèi)指定一系列字符,而不是一個(gè)一個(gè)地寫(xiě)完所有字符。

例如,[a-e]等同于[abcde],[1-3]等同于[123]。以下表達(dá)式匹配以大寫(xiě)字母開(kāi)頭的每一行:

grep '^[A-Z]' file.txt

grep還支持中括號(hào)包含的預(yù)定義字符類(lèi)別。[:alnum:]表示匹配單個(gè)數(shù)字與字母字符,與[0-9A-Za-z]一樣。[:alpha:]表示匹配單個(gè)字母字符,與[A-Za-z]一樣。

[:blank:]表示匹配單個(gè)空格和制表符。[:digit:]表示匹配單個(gè)數(shù)字0 1 2 3 4 5 6 7 8 9。

[:lower:]表示匹配單個(gè)小寫(xiě)字母字符,與[a-z]一樣。[:upper:]表示匹配單個(gè)大寫(xiě)字母,與[A-Z]一樣。

量詞

量詞可讓您指定匹配項(xiàng)必須出現(xiàn)的次數(shù),即匹配關(guān)鍵詞可以被多次匹配。以下是一些GNU grep支持的量詞。

  • 表示匹配零次或者多次。? 表示將前一項(xiàng)匹配零或一次,+ 表示匹配前一項(xiàng)一次或多次。{n}匹配前一項(xiàng)n次,n是數(shù)字。
    {n,}至少匹配n次。 {,m}最多匹配前一項(xiàng)m次。 {n,m}匹配前一項(xiàng)必須出現(xiàn)次數(shù)是從n-m次,如果是{2,4},即2至4次。

現(xiàn)在我們已經(jīng)了解正則表達(dá)式的量詞,接下來(lái)我們將使用量詞作為示例。在grep使用量詞進(jìn)行搜索,以及如何避免shell解釋特殊字符*,?等。

*字符與前面的字符匹配零次或多次。以下grep命令示例將匹配sright,right ,ssright等。

正則表達(dá)式sright的量詞表示匹配s字符零次或者多次,即沒(méi)有上限,可以是很多sssss。's*right’給正則表達(dá)式使用單引號(hào),也是避免shell解釋特殊字符的方式。

或運(yùn)算

豎線|或運(yùn)算符使您可以指定不同的可能匹配項(xiàng),這些匹配項(xiàng)可以是文字字符串或正則表達(dá)式。在所有正則表達(dá)式運(yùn)算符中,此運(yùn)算符的優(yōu)先級(jí)最低。

在下面的示例中,我們搜索Nginx的錯(cuò)誤日志文件中出現(xiàn)單詞fatal,error和critical行,如果使用擴(kuò)展的正則表達(dá)式,則不需要對(duì)|進(jìn)行轉(zhuǎn)義。

grep 'fatal\|error\|critical' /var/log/nginx/error.log
grep -E 'fatal|error|critical' /var/log/nginx/error.log

分組

分組是正則表達(dá)式的一項(xiàng)功能,可讓您將模式分組并將其作為引用??墒褂美ㄌ?hào)()創(chuàng)建分組。使用基本正則表達(dá)式時(shí),必須用反斜杠\對(duì)括號(hào)進(jìn)行轉(zhuǎn)義。

正則表達(dá)式可以有多個(gè)組。結(jié)果,匹配捕獲的組通常保存在數(shù)組中,數(shù)組的成員與匹配的組順序相同。這通常只是匹配組本身的順序。

匹配的組保存在數(shù)組中,如果需要對(duì)捕獲的組進(jìn)行引用??墒褂?1, …, $9對(duì)捕獲的組進(jìn)行引用。

以下示例同時(shí)匹配fear和less。 量詞?使(fear)組成為可選。

反斜杠表達(dá)式

GNU grep包含幾個(gè)由反斜杠和常規(guī)字符組成的元字符。以下是一些最常見(jiàn)的特殊反斜杠表達(dá)式。

\b匹配單詞邊界。<匹配單詞開(kāi)頭的空字符串。>在單詞末尾匹配一個(gè)空字符串。 \w匹配一個(gè)單詞。\s匹配空格。

以下模式將匹配單獨(dú)的單詞abject和object。 如果嵌入較大的單詞,則不會(huì)匹配這些單詞:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-441595.html

grep '\b[ao]bject\b' file.txt

到了這里,關(guān)于Linux Grep 正則表達(dá)式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Linux:shell腳本:基礎(chǔ)使用(4)《正則表達(dá)式-grep工具》

    Linux:shell腳本:基礎(chǔ)使用(4)《正則表達(dá)式-grep工具》

    正則表達(dá)式定義: ? ? ? ? 使用單個(gè)字符串來(lái)描述,匹配一系列符合某個(gè)句法規(guī)則的字符串 正則表達(dá)式的組成: ? ? ? ? 普通字符串: 大小寫(xiě)字母,數(shù)字,標(biāo)點(diǎn)符號(hào)及一些其他符號(hào) ? ? ? ? 元字符:在正則表達(dá)式中具有特殊意義的專(zhuān)用字符 正則表達(dá)式不能單獨(dú)使用,需要配

    2024年02月12日
    瀏覽(19)
  • Linux三劍客(awk、sed、grep) 和 正則表達(dá)式

    Linux三劍客(awk、sed、grep) 和 正則表達(dá)式

    本文章適用于一定工作經(jīng)驗(yàn)(熟悉Linux基礎(chǔ))的同行,歡迎各位大佬批判指正。 上手三劍客(grep,sed,awk)之前,需要熟悉正則表達(dá)式, 正則表達(dá)式 ——事先定義好的一些特定字符、及這些特定字符的組合,組成一個(gè)“規(guī)則字符串”,這個(gè)“規(guī)則字符串”用來(lái)表達(dá)對(duì)字符串的

    2024年02月15日
    瀏覽(93)
  • Linux系統(tǒng)三劍客之grep和正則表達(dá)式的介紹(一)

    Linux系統(tǒng)三劍客之grep和正則表達(dá)式的介紹(一)

    1.正則表達(dá)式 目錄 1.正則表達(dá)式 1.什么是正則表達(dá)式 ? 2.正則表達(dá)式的使用場(chǎng)景 3.正則表達(dá)式字符表示 4.它們之間的區(qū)別 2.grep命令 作用: 語(yǔ)法: 說(shuō)明: 選項(xiàng):options 重點(diǎn) 實(shí)例 3.后面的下次再更新。? 1.什么是正則表達(dá)式 ? 一個(gè)正則表達(dá)式就是描述了一個(gè)字符串集合的方式

    2024年01月18日
    瀏覽(108)
  • 正則表達(dá)式與文本處理器

    正則表達(dá)式與文本處理器

    文本處理器三劍客:grep(查找) sed? awk 正則表達(dá)式: 由一類(lèi)特殊字符以及文本字符所編寫(xiě)的一種模式,處理文本當(dāng)中的內(nèi)容 其中的一些字符不表示字符的字面含義,這些字符表示控制或者通配的功能 通配符: 匹配文件名和目錄名,不能匹配文件內(nèi)容 正則表達(dá)式有兩種匹

    2024年02月16日
    瀏覽(29)
  • linux | sort、uniq、history、xargs、grep 正則表達(dá)式(不深入)

    1.正則表達(dá)式 sort命令 #把內(nèi)容讀到內(nèi)存,然后以行為單位進(jìn)行排序并把結(jié)果輸出到stdout(因?yàn)橹苯影雅判蚪Y(jié)果輸出,所以可以重定向),但是并不修改源文件內(nèi)容。 參考如下 uniq命令 #流程和sort類(lèi)似,也是把相鄰的相同行去掉,最后輸出。注意間隔的相同行無(wú)法去除。 如何把

    2024年02月16日
    瀏覽(22)
  • 2.1 python文本處理-正則表達(dá)式

    標(biāo)準(zhǔn)庫(kù)模塊 re 模塊方法 # 將正則表達(dá)式樣式編譯成一個(gè)正則對(duì)象。一般用于多次使用正則對(duì)象的場(chǎng)景 re.compile( pattern ) # 掃描string字符串并查找符合patten樣式的第一個(gè)位置,返回對(duì)應(yīng)的 Match 結(jié)果,否則返回 None re.search(patten, string) #?如果? string ?開(kāi)頭的零個(gè)或多個(gè)字符與正則

    2024年02月01日
    瀏覽(29)
  • Python 正則表達(dá)式:強(qiáng)大的文本處理工具

    正則表達(dá)式是一種強(qiáng)大的文本匹配和處理工具,它可以用來(lái)在字符串中查找、替換和提取符合某種規(guī)則的內(nèi)容。在Python中,使用re模塊可以輕松地操作正則表達(dá)式,它提供了豐富的功能和靈活的語(yǔ)法。 正則表達(dá)式在許多場(chǎng)景中都非常有用。以下是一些常見(jiàn)的應(yīng)用場(chǎng)景: 數(shù)據(jù)清

    2024年02月09日
    瀏覽(29)
  • 正則表達(dá)式與正則可視化工具:解密文本處理的利器

    正則表達(dá)式與正則可視化工具:解密文本處理的利器

    在計(jì)算機(jī)科學(xué)和軟件開(kāi)發(fā)領(lǐng)域,正則表達(dá)式是一種強(qiáng)大而靈活的文本處理工具。然而,對(duì)于初學(xué)者來(lái)說(shuō),正則表達(dá)式的語(yǔ)法和規(guī)則可能會(huì)顯得晦澀難懂。為了幫助初學(xué)者更好地理解和學(xué)習(xí)正則表達(dá)式,正則可視化工具應(yīng)運(yùn)而生。本文將介紹正則表達(dá)式的基本概念、語(yǔ)法和應(yīng)用

    2024年02月19日
    瀏覽(27)
  • Linux Shell 腳本編程學(xué)習(xí)之【第3章 正則表達(dá)式 (第二部分) grep命令】

    1、文本搜索工具 2、GREP 是Global search Regular Expression and Print out the line的簡(jiǎn)稱(chēng),即全面搜索正則表達(dá)式并把行打印出來(lái)。 3、grep命令的模式十分靈活,可以是字符串,也可以是變量,還可以是正則表達(dá)式。模式中包含空格,則必須用雙引號(hào)括起來(lái)。 選 項(xiàng) 意 義 -c 只輸出匹配行

    2024年02月16日
    瀏覽(18)
  • Shell 正則表達(dá)式及綜合案例及文本處理工具

    Shell 正則表達(dá)式及綜合案例及文本處理工具

    ?目錄 一、常規(guī)匹配 二、常用特殊字符 三、匹配手機(jī)號(hào) 四、案例之歸檔文件 五、案例之定時(shí)歸檔文件 六、Shell文本處理工具 1. cut工具 2. awk工具 一串不包含特殊字符的正則表達(dá)式匹配它自己 例子,比如說(shuō)想要查看密碼包含root字符串的,可以這樣寫(xiě) cat /etc/passwd | grep root 特

    2024年01月17日
    瀏覽(70)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包