溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux的egrep命令怎么使用

發(fā)布時(shí)間:2022-01-25 10:01:32 來(lái)源:億速云 閱讀:148 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹“Linux的egrep命令怎么使用”,在日常操作中,相信很多人在Linux的egrep命令怎么使用問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Linux的egrep命令怎么使用”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

Linux常用命令egrep命令用于在文件內(nèi)查找指定的字符串,egrep執(zhí)行效果與”grep-E”相似,使用的語(yǔ)法及參數(shù)可參照grep指令,與grep的不同點(diǎn)在于解讀字符串的方法。

Linux的egrep命令怎么使用

語(yǔ)法

 egrep [范本模式] [文件或目錄](méi)

參數(shù)說(shuō)明:

  • [范本模式] :查找的字符串規(guī)則。

  • [文件或目錄](méi) :查找的目標(biāo)文件或目錄。

實(shí)例

1.搜索和尋找文件

假設(shè)你已經(jīng)在你的電腦上安裝了一個(gè)全新的Ubuntu,然后你打算卸載Python。你瀏覽網(wǎng)頁(yè)尋找教程,但是你發(fā)現(xiàn)存在兩個(gè)不同版本的Python在使用,而你不知道你的Ubuntu安裝器到底在你的系統(tǒng)中安裝了哪個(gè)版本的Python,也不知道它安裝了哪些模塊。解決這個(gè)煩惱只需簡(jiǎn)單的運(yùn)行以下命令:

  $ sudo dpkg -l | grep -i python
輸出例子
 ii python2.7     2.7.3-0ubuntu3.4 Interactive high-level object-oriented language (version 2.7)``ii python2.7-minimal 2.7.3-0ubuntu3.4 Minimal subset of the Python language (version 2.7)``ii python-openssl  0.12-1ubuntu2.1 Python wrapper around the OpenSSL library``ii python-pam    0.4.2-12.2ubuntu4 A Python interface to the PAM library

首先,我們運(yùn)行dpkg -l列出你系統(tǒng)上安裝的.deb包。接著,我們使用管道將輸出結(jié)果傳輸給命令grep -i python,這一步可以簡(jiǎn)單解釋為把結(jié)果傳輸給grep然后過(guò)濾出所有含有python的項(xiàng),并返回結(jié)果。–i選項(xiàng)用于忽略大小寫(xiě),因?yàn)?grep 是大小寫(xiě)敏感的。使用選項(xiàng)-i是個(gè)好習(xí)慣,除非你打算進(jìn)行更細(xì)節(jié)的搜索。

2.搜索和過(guò)濾文件

grep還可以在一個(gè)或多個(gè)文件里用于搜索和過(guò)濾。讓我們來(lái)看一個(gè)這樣的情景:

你的Apache網(wǎng)頁(yè)服務(wù)器出現(xiàn)了問(wèn)題,你不得不從許多專業(yè)網(wǎng)站里找一個(gè)發(fā)帖詢問(wèn)。好心回復(fù)你的人讓你粘貼上來(lái)你的/etc/apache2/sites-available/default-ssl文件內(nèi)容。假如你能移除掉所有的注釋行,那么對(duì)你,對(duì)幫你的人,以及所有閱讀該文件的人,不是更容易發(fā)現(xiàn)問(wèn)題嗎?你當(dāng)然可以很容易的做到!只需這樣做就可以了:

  $ sudo grep -v "#" /etc/apache2/sites-available/default-ssl

選項(xiàng)-v是告訴grep命令反轉(zhuǎn)它的輸出結(jié)果,意思就是不輸出匹配的項(xiàng),做相反的事,打印出所有不匹配的項(xiàng)。這個(gè)例子中,有#的是注釋行(譯注:其實(shí)這個(gè)命令并不準(zhǔn)確,包含“#”的行不全是注釋行。關(guān)于如何精確匹配注釋行,可以了解更多的關(guān)于正則表達(dá)式的內(nèi)容。)。

3.找出所有的mp3文件

grep命令對(duì)于過(guò)濾來(lái)自于標(biāo)準(zhǔn)輸出的結(jié)果非常有用。例如,假設(shè)你的一個(gè)文件夾里面全是各種格式的音樂(lè)文件。你要找出藝術(shù)家jayZ的所有mp3格式的音樂(lè)文件,里面也不要有任何混合音軌。使用find命令再結(jié)合管道使用grep就可以完成這個(gè)魔法:

  $ sudo find . -name ".mp3" | grep -i JayZ | grep -vi "remix""

在這個(gè)例子中,我們使用find命令打印出所有以.mp3為后綴名的文件,接著將其使用管道傳遞給grep -i過(guò)濾和打印出名字為“JayZ”的文件,再使用管道傳送給grep -vi以便過(guò)濾掉含有“remix”的項(xiàng)。

4.在搜索字符串前面或者后面顯示行號(hào)

另外兩個(gè)選項(xiàng)是-A和-B之間的切換,是用以顯示匹配的行以及行號(hào),分別控制在字符串前或字符串后顯示的行數(shù)。Man頁(yè)給出了更加詳細(xì)的解釋,我發(fā)現(xiàn)一個(gè)記憶的小竅門(mén):-A=after、-B=before。

  $ sudo ifconfig | grep -A 4 etho $ sudo ifconfig | grep -B 2 UP

到此,關(guān)于“Linux的egrep命令怎么使用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI