grep命令使用詳細小結

來源:互聯網
上載者:User

字元選取功能的工具程式grep:
grep [-acinv] '搜尋字串'  檔案名稱

example:
1、搜尋特定字串:grep -n 'the' myfilename
2、利用[]來搜尋集合字元:要搜尋如test、taste這二個,它們有相同的部分,就是t?st,那麼就可以這樣:
grep -n 't[ea]st' myfilename   []中不管有幾個字元,都只代表“一個”字元。
如果不想某一些字串前不能有另外的字元時,就可以用:
grep -n '[^g]oo' myfilename  不想在oo的前面有g這個字元
如果不想oo前面有小寫字母,所以,可以這樣寫[^abcd...z]oo,但這樣不太方便,由於小寫字母的ascll碼是順序的,可以這樣寫:
grep -n '[^a-z]oo' myfilename
在一組集合字元中,如果上字元組是連續的,如大寫英文字母 小寫字母 數字等,就可以使用[a-z][A-Z][0-9]等方式來書寫,如果要求字串是數字與英文,就全部寫在一起,變成:[a-zA-z0-9],如:要取得有數位那一行:grep -n '[0-9]' myfilename
3、行首與行尾字元^$
我們查詢一行字元裡有the,如果想讓the只在行首出現,就要使用定位器:
grep -n '^the' myfilename
如果想列出開關是小寫字母的那一行呢?可以這樣:
grep -n '^[a-z]' myfilename
如果我不想要開關是英文字母,可以是這樣的:
grep -n '^[^a-zA-Z]' myfilename
如果要長出行尾結束為小數點(.)的一行,處理方法如下:
grep -n '/.$' myfilename
因為小數點具有其它含義,所以必須要用轉義符(/)來解除其特殊意義。
找出哪一行是空白行:
grep -n '^$' myfilename
去掉檔案中的空行及注釋(以C檔案為例):grep -v '^$' /etc/syslog.conf | grep -v '^#'
4、任意一個字元(.)與重複字元(*)
如要找出g??d字串,即共有四個字元,起始是g結束是d,可以這樣做:
grep -n 'g..d' filename
這裡的.代表的是"絕對有一個任一字元"。
如果想列出有oo、ooo、oooo的資料,也就是說,至少要有兩個o以上,如何做呢?
因為(*)表示“重複0個或多個前面的RE字元“,因此,(o*)表示"擁有Null 字元或一個o以上的字元"。
如:至少二個o以上的字串時,這樣寫:
grep -n 'ooo*' filename    前二個o是必須的,第三個o是可有可無的。
5、限定連續重複字元範圍{}
以上我們可以通過(.)(*)來設定0個到無限多個重複字元,如果想限制一個範圍內的重複字元數呢?如:要找出2-5個o的連續字串,如何做?就要使用限定範圍字元{}了,因為{與}的符號在shell有特殊意義,因為必須用逸出字元/讓它失去意義。假設要找到兩個o的字串,可以這樣做:
grep -n 'o/{2/}' filename
假設要找出g後面接2~5個o,然後接一個g的字串,它會是這樣的:
grep -n 'go/{2,5/}' filename  
如果想要的是兩個o以上的gooo..g?除了可以使用gooo*g,也可以使用下面的方法找出來:
grep -n 'go/{2,/}' filename  連續重複o字元2次以上.

萬用字元的反向選擇為[!range],Regex則是[^range].

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.