0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用grep對(duì)標(biāo)準(zhǔn)輸出進(jìn)行過濾

CHANBAEK ? 來源:myfreax ? 作者:myfreax ? 2022-12-12 17:30 ? 次閱讀

grep命令的全稱是全局正則表達(dá)式打印,它是Linux中功能最強(qiáng)大且最常用的命令之一。

grep在一個(gè)或多個(gè)輸入文件中搜索與指定模式匹配的行,并將匹配行寫入標(biāo)準(zhǔn)輸出。如果未指定文件,grep則從標(biāo)準(zhǔn)輸入讀取內(nèi)容。

在本教程中,我們將向您展示如何使用grep對(duì)標(biāo)準(zhǔn)輸出進(jìn)行過濾,排除 。這其中包括排除不匹配的行,排除目錄和文件等。

grep 反轉(zhuǎn)匹配

要僅打印與搜索模式不匹配的行,可以使用grep命令的-v--invert-match選項(xiàng)進(jìn)行反轉(zhuǎn)的匹配。

注意grep會(huì)區(qū)分大小寫。這意味著大寫和小寫被視為不同的字符。要在搜索時(shí)忽略大小寫,使用-i選項(xiàng)調(diào)用grep。

如果搜索字符串包含空格,只需要將其括在單引號(hào)或雙引號(hào)中。grep就會(huì)搜索空格,你也可以使用正則表達(dá)式表示空格的匹配。

例如命令ps aux | grep fnord | grep -v grep 在搜索進(jìn)程的時(shí)候排除自身的進(jìn)程。

ps aux | grep fnord | grep -v grep

grep 排除單詞

-w選項(xiàng)用于匹配整個(gè)單詞,例如你要搜索gnu,但內(nèi)容包含單詞cygnusmagnum等單詞,在使用-w選項(xiàng)時(shí)將不會(huì)這些單詞,僅僅匹配單詞gnu

要排除單詞可以組合使用grep命令的-wv選項(xiàng)。例如命令grep -wv nologin etc/passwd將會(huì)要打印不包含nologin行。

也可以使用grep命令-e選項(xiàng)同時(shí)排除多個(gè)單詞。例如命令grep -wv -e nologin -e bash etc/passwd

排除多個(gè)單詞的另一個(gè)選項(xiàng)是使用OR運(yùn)算符|。例如命令grep -wv 'nologin\\|bash' etc/passwd命令打印不包含字符串nologinbash 的行。

grep -wv nologin etc/passwd
grep -wv -e nologin -e bash etc/passwd
grep -wv 'nologin\\|bash' etc/passwd

grep 排除正則表達(dá)式

GNUgrep支持三種正則表達(dá)式語法,Basic、Extended和Perl-compatible。默認(rèn)情況下,grep將模式解釋為Basic正則表達(dá)式。

當(dāng)你在正則表達(dá)式中使用使用OR運(yùn)算符|時(shí),必須使用反斜杠\\進(jìn)行轉(zhuǎn)義。因?yàn)閟hell會(huì)將|解釋Linux管道。

如果你使用的擴(kuò)展正則表達(dá)式,則|不不需要轉(zhuǎn)義,即不需要反斜杠\\,-E選項(xiàng)指示grep命令使用擴(kuò)展正則表達(dá)式。

例如命令grep -Ewv 'nologin|bash' etc/passwdgrep -wv 'nologin\\|bash' etc/passwd是等效的,前者使用的是擴(kuò)展表達(dá)式,后者使用基本正則表達(dá)式。

grep -Ewv 'nologin|bash' etc/passwd

grep -wv 'nologin\\|bash' etc/passwd

grep 排除目錄和文件

有時(shí),當(dāng)使用-r-R選項(xiàng)執(zhí)行遞歸搜索目錄或者文件時(shí),您可能希望從搜索結(jié)果中排除指定的目錄。

-r-R選項(xiàng)之間的主要區(qū)別在于,當(dāng)使用大寫字母R運(yùn)行g(shù)rep命令時(shí),它將追蹤所有符號(hào)鏈接文件。

grep命令的--exclude-dir選項(xiàng)允許排除多個(gè)文件與目錄。排除目錄的路徑是相對(duì)于搜索的起始目錄。

例如命令grep -R --exclude-dir=pki myfreax /etc將會(huì)在/etc目錄中搜索包含字符串myfreax的文件,但不包括etc/pki目錄。

grep -R --exclude-dir=pki myfreax /etc

grep 排除多個(gè)文件與目錄

如果要排除多個(gè)目錄,請(qǐng)將排除的目錄括在大括號(hào)中,并用逗號(hào)分隔,不要有空格。

在使用通配符匹配時(shí),您可以使用grep命令--exclude選項(xiàng)并指定的GLOB來排除不需要結(jié)果。

例如命令grep -rl --exclude=*.{png,jpg} myfreax *將會(huì)在當(dāng)前工作目錄搜索包含字符串myfreax的文件,但不包括以.png.jpg目錄結(jié)尾的文件。

命令grep -r --exclude-dir={proc,boot,sys} gnu /在你的Linux系統(tǒng)的根目錄/ 開始搜索包含字符串GNU的文件,并且排除proc,bootsys目錄

grep -rl --exclude=*.{png,jpg} myfreax *

grep -r --exclude-dir={proc,boot,sys} gnu /

結(jié)論

grep命令允許您在搜索文件時(shí)排除模式和目錄。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11466

    瀏覽量

    212851
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    730

    瀏覽量

    22682
  • grep
    +關(guān)注

    關(guān)注

    0

    文章

    23

    瀏覽量

    4860
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何對(duì)集成電路模擬輸入和輸出進(jìn)行高壓瞬變保護(hù)

    本文將要解決的兩個(gè)問題:(1) 如何依據(jù) IEC 61000-4-2、IEC 61000-4-4 和 IEC 61000-4-5 標(biāo)準(zhǔn)的規(guī)定,對(duì)集成電路模擬輸入和輸出進(jìn)行高壓瞬變保護(hù);(2) 如何設(shè)計(jì)系統(tǒng)輸入輸出保護(hù)電路。
    的頭像 發(fā)表于 04-10 08:45 ?1.1w次閱讀
    如何對(duì)集成電路模擬輸入和<b class='flag-5'>輸出進(jìn)行</b>高壓瞬變保護(hù)

    12個(gè) Linux 中 grep 命令的超級(jí)用法實(shí)例

    library首先,我們運(yùn)行dpkg -l列出你系統(tǒng)上安裝的.deb包。接著,我們使用管道將輸出結(jié)果傳輸給命令grep -i python,這一步可以簡單解釋為把結(jié)果傳輸給grep然后過濾
    發(fā)表于 05-12 08:00

    如何從SOF,EOL,DE和數(shù)據(jù)作為輸出進(jìn)行解碼

    我可以獲得任何參考設(shè)計(jì),用于解碼來自傳入視頻的嵌入式同步,1080 * 1920輸入視頻已同步SAV / EAV代碼,我需要從SOF,EOL,DE和數(shù)據(jù)作為輸出進(jìn)行解碼。
    發(fā)表于 07-17 09:48

    一個(gè)穩(wěn)壓器對(duì)其電壓電流的輸出進(jìn)行管理

    電源管理芯片可以為多設(shè)備供電,但是這些設(shè)備電壓電流有所同。那么此時(shí)就需要一個(gè)穩(wěn)壓器對(duì)其電壓電流的輸出進(jìn)行管理。Linux世界將其抽象成模型即為`regulator`。
    發(fā)表于 11-15 08:00

    如何對(duì)printf函數(shù)的輸出進(jìn)行重定向呢

    怎樣去使用printf函數(shù)打印基本的顯示信息呢?如何對(duì)printf函數(shù)的輸出進(jìn)行重定向呢?
    發(fā)表于 11-30 07:29

    怎樣通過三路PWM輸出進(jìn)行RGB燈調(diào)色呢

    怎樣通過三路PWM輸出進(jìn)行RGB燈調(diào)色呢?其原理是什么?
    發(fā)表于 03-09 07:01

    熱電偶輸出進(jìn)行數(shù)字轉(zhuǎn)換的電路

    熱電偶輸出進(jìn)行數(shù)字轉(zhuǎn)換的電路
    發(fā)表于 03-18 09:25 ?1932次閱讀
    熱電偶<b class='flag-5'>輸出進(jìn)行</b>數(shù)字轉(zhuǎn)換的電路

    grep學(xué)習(xí)筆記

    grep (global search regular expression(RE) and print out the line,全面搜索正則表達(dá)式并把行打印出來)是一種強(qiáng)大的文本搜索工具,它能
    發(fā)表于 11-07 15:37 ?7次下載

    Linux中用grep命令來搜索單詞及統(tǒng)計(jì)匹配的行數(shù)

    代碼代碼如下:$ egrep -wi --color 'warning|error|critical' /var/log/messages輸出示例:用 grep 命令統(tǒng)計(jì)匹配字符串的行數(shù)在 Linux
    發(fā)表于 04-02 14:46 ?755次閱讀

    醫(yī)用防護(hù)口罩過濾測試儀的測試原理及測試標(biāo)準(zhǔn)

      醫(yī)用防護(hù)口罩過濾測試儀能模擬口罩或?yàn)V材實(shí)際使用環(huán)境,基于標(biāo)準(zhǔn)要求的油霧和鹽霧方法進(jìn)行過濾效率及過濾阻力測試。
    發(fā)表于 03-21 11:41 ?2572次閱讀

    Linux中的Grep正則表達(dá)式詳細(xì)資料說明

    grep是Linux中用于文本處理的最有用和功能最強(qiáng)大的命令之一。 grep在一個(gè)或多個(gè)輸入文件中搜索與正則表達(dá)式匹配的行,并將每條匹配的行寫入標(biāo)準(zhǔn)輸出。
    的頭像 發(fā)表于 06-21 11:39 ?2368次閱讀

    grep命令常用的選項(xiàng)詳解

    說明:在Rocky8系統(tǒng)中,grep默認(rèn)幫我們把匹配到的字符串標(biāo)注了紅色,這點(diǎn)還是挺貼心的。其實(shí)大家可以用which命令看一下grep,你會(huì)發(fā)現(xiàn)grep其實(shí)是grep --color=
    的頭像 發(fā)表于 11-30 11:43 ?5321次閱讀

    ZMID5201 使用模擬輸出進(jìn)行校準(zhǔn)和線性化的手冊

    ZMID5201 使用模擬輸出進(jìn)行校準(zhǔn)和線性化的手冊
    發(fā)表于 03-14 19:25 ?0次下載
    ZMID5201 使用模擬<b class='flag-5'>輸出進(jìn)行</b>校準(zhǔn)和線性化的手冊

    ZMID5201 使用模擬輸出進(jìn)行校準(zhǔn)和線性化的手冊

    ZMID5201 使用模擬輸出進(jìn)行校準(zhǔn)和線性化的手冊
    發(fā)表于 07-05 19:51 ?1次下載
    ZMID5201 使用模擬<b class='flag-5'>輸出進(jìn)行</b>校準(zhǔn)和線性化的手冊

    Linux grep命令詳解

    Linux grep命令是一種非常常用的文本搜索工具,它可以在給定的文件中搜索匹配的字符串,并輸出匹配的行。grep是全稱“global search regular expression print”,可以識(shí)別正則表達(dá)式,并使
    的頭像 發(fā)表于 12-25 09:39 ?771次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品