1. 程式人生 > >Shell – Grep 常見用法

Shell – Grep 常見用法

顯示 grep -n 意思 gre 基礎 轉譯 col 當前目錄 選項

是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。
我經常用來查找字符串比如:

    grep -rn "字符串" .

遞歸查找當前目錄下所有文件中 “字符串” 並且所在標出所在行。

下面來看看具體參數:

    grep [-acinv] [--color=auto] ‘搜尋字符串‘ filename 選項參數:
    -a :將 binary 檔案以 text 檔案方式搜尋數據
    -c :計算找刡 ‘搜尋字符串‘ 次數
    -i :忽略大小寫
    -n :輸出行號
    -v :反向選擇,亦即顯示出沒有 ‘搜尋字符串‘ 內容癿那一行! --color=auto :可以將找刡癿關鍵詞部分加上顏色癿顯示!
    -A :後面可加數字,為 after 癿意思,除了列出該行外,後續的 n 行也列出; 
    -B :後面可加數字,為 befer 癿意思,除了列出該行外,前面的 n 行也列出;

grep 只支持基礎正則表示法,若要延伸型正則,則要用egrep或者 grep -E。

基礎正則表示法總結如下:

    ^word:查找字符串(word)在行首  grep -n ‘^word‘ filename
    word$:  查找字符串(word)在行末  grep -n ‘word$‘ filename
    . : 任意字符
    \ : 轉譯
    *:前面字符 0 到 任意多個
    [] : 字符集合
    [n1-n2] : 範圍  如[0-9]
    [^]: 字符取反,就是不能是裏面的字符
    \{n,m\}: 出現n到m次

延伸正則表示總結如下:

    +  :一個或者一個以上
    ? :零個或者一個
    |   : 或
    ()  :  群組   egrep -n ‘g(la|oo)d‘ filename  找出 glad 或者 good 兩個字符串
    ()+:  群組出現一次或者多次

grep 還有很多高級用法,請感興趣的自己去補給,我只列出了基礎的常見的用法。

Shell – Grep 常見用法