9 shell命令之grep

來源:互聯網
上載者:User

標籤:shell   grep   

當我們需要在成千上萬個檔案中找到一個指定的檔案,可能我們可以用ls filename . 結果會列出這個檔案的一些資訊.但這不是最好的方式.或者指定規則的檔案的時候,ls顯然無法滿足我們的需求了.無論上述哪種情況,我們需要一個強大的助手-grep.

grep還有幾個變體,分別是egrep, fgrep, rgrep. 在這幾個變體裡面,我只知道egrep是grep -E .也就是grep的正則變體.

grep [option] "pattern" [filename]

此處之所以把檔案名稱用中括弧括起來,是因為檔案名稱可有可無.grep可以從標準輸入擷取資料.

option可選的選項有很多.因為選項太多了,man手冊還特意的給這些選項做了一個分類.看看是啥:

1. 匹配方式選擇

    -E   正則匹配

    其它的都沒有用過.

2. 匹配控制

    -i   忽略大小寫

    -e  可以指定多個pattern

    -f   指定pattern檔案,也就是說,可以把要尋找的欄位放在一個檔案中,當指定多個pattern的時候,這個比較常用.

    -v   反向尋找.即列出不匹配的.

3. 基本輸出控制

    -c   列印匹配行數,不是次數

    --color=...   一般這個值就是auto.指定輸出的顏色

    -L   列印不匹配的檔案

    -l   列印匹配的檔案

    -o   僅列印匹配的pattern

    -q   靜默模式,需要通過$? 來檢查返回值來確定是否找到匹配的內容

4. 輸出行修飾

    -b   列印首字母位移,注意這個便宜不是匹配字元的位移,如果要列印匹配字元的位移需要配合-o選項

    -h/H   前者不帶檔案名稱列印,後者帶檔案名稱列印.預設列印檔案名

    -n   列印檔案的第幾行匹配了pattern

    -Z   有的時候,一個檔案是使用空格作為分隔字元的,而空格是作為shell環境的IFS存在的,所以就有可能出現把一個檔案名稱分割成兩個檔案名稱的現象.面對這種問題,處理辦法是-Z,指定以\0作為字串的分隔字元.

5. 檔案和檔案夾的選擇

    -a   把所有檔案都當做是文字檔來處理

    --exclude=...   去除指定的檔案

    --exclude-from=FILE   FILE中列出需要忽視的檔案名稱.

    --exlucde-dir=...   忽略掉指定的檔案夾


ok吧,就這些吧.光記住這些就已經很頭疼了.反正我差不多都記住了.

另外還有三個比較好玩的選項-A -B -C   .  意思分別是,列印匹配前幾行,列印匹配後幾行,列印匹配前後各幾行.-A等後面接一個數字.

   

下面還是看看grep的一些用法吧.

過濾當前檔案夾下sh為尾碼的檔案,然後過濾sh檔案中的expect檔案.並且打出其前後兩行.然後測試-o和-b選項.


找到目前的目錄下,包含bash字串的檔案.有好多is a directory,消除它.

只列印匹配的檔案名稱,然後列印不匹配的檔案名稱,然後再看看-H/h的效果.列印出匹配的資訊在第幾行


全目錄搜尋排除某個目錄下的所有檔案.這裡不知道是不是bug的原因.列出我兩次命令的區別.

兩次輸入的區別就是一個帶了/一個沒有帶.結果就不一樣.看來以後這個要記住了,收穫啊.

Regex就不再去介紹了,完全可以寫好幾篇文章介紹.網上也有很多資源.同學們可以去參考一下.(其實我也是個Regex的二把刀)

ok.就介紹這麼多吧.每次用grep的時候都感覺知道的好少,突然一總結髮現,知道的也不少啊.其實關鍵還是在運用上面,shell編程就是這樣,可能有些命令我們並不知道,但是可以根據我們知道的命令去完成.

9 shell命令之grep

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.