shell指令碼編程中的grep命令

來源:互聯網
上載者:User

標籤:Regex   grep   shell   

grep命令文法
grep命令使用一個選項、一個要匹配的模式和要搜尋的檔案,它的文法如下所示:

grep  [options]  PATTERN  [FILES]

如果沒有提供檔案名稱,則grep命令將搜尋標準輸入。

  1. options

    選項 含義
    -c   輸出匹配行的數目,而不是輸出匹配的行
    -E   啟用擴充運算式
    -h   取消每個輸出行的普通首碼,即匹配查詢模式的檔案名稱
    -i   忽略大小寫
    -l   只列出包含匹配行的檔案名稱,而不輸出真正的匹配行
    -v   對匹配模式取反,即搜尋不匹配行而不是匹配行


  2. PATTERN

    匹配模式採用Regex。Regex是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成一個“規則字串”,這個“規則字串”用來表達對字串的一種過濾邏輯。

    給定一個Regex和另一個字串,我們可以達到如下的目的:
    1. 給定的字串是否符合Regex的過濾邏輯(稱作“匹配”);
    2. 可以通過Regex,從字串中擷取我們想要的特定部分。

    Regex的特點是:
    1. 靈活性、邏輯性和功能性非常的強;
    2. 可以迅速地用極簡單的方式達到字串的複雜控制。
    3. 對於剛接觸的人來說,比較晦澀難懂。

    由於Regex主要應用對象是文本,因此它在各種文字編輯器場合都有應用。

    在Regex的使用過程中,一些字元是以特定方式處理的。grep命令支援且最常用的特殊字元如下表所示:


    字元              
    含義
    ^ 指向一行的開頭
    $ 指向一行的結尾
    . 任意單個字元
    [ ] 方括弧內包含一個字元範圍,其中任何一個字元都可以被匹配,例如字元範圍a~e,或在字元範圍前面加上^符號表示使用反向字元範圍,即不匹配指定範圍的內的字元。

    如果想將上述字元用作一般字元,就需要在它們前面加上\字元。例如,如果想使用$字元,需要將它寫為 \$ 。

    在方括弧中還可以使用一些有用的特殊匹配模式。如下表所示:

    匹配模式 含義
    [:alnum:] 字母與數字字元
    [:alpha:] 字母
    [:ascii:] ASCII字元
    [:blank:] 空格或定位字元
    [:cntrl:] ASCII控制字元
    [:digit:] 數字
    [:graph:] 非控制、非空格字元
    [:lower:] 小寫字母
    [:print:] 可列印字元
    [:punct:] 標點符號字元
    [:space:] 空白字元,包括垂直製表字元
    [:upper:] 大寫字母
    [:xdigit:] 十六進位數字

    另外,如果指定了用於擴充匹配的-E選項,那些用於控制匹配完成的其他字元可能會遵循Regex的規則,如下表所示:

    選項 含義
    ? 匹配是可選的,但最多匹配一次
    * 必須匹配0次或多次
    + 必須匹配1次或多次
    {n} 必須匹配n次
    {n, } 必須匹配n次或者n次以上
    {n,m} 匹配次數在n到m之間,包括n和m

    對於shell中的grep命令來說,需要在這些字元之前加上 \ 字元。

grep命令樣本
  1. 第一個例子是尋找以字母e結尾的行。
    <span style="font-size:12px;">grep e$ words.txt</span>

  2. 尋找以字母a結尾的單詞。
    <span style="font-size:12px;">grep a[[:blank:]] words2.txt</span>

  3. 尋找以Th開頭的由3個字母組成的單詞。
    <span style="font-size:12px;">grep Th.[[:space:]] words2.txt</span>


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.