shell腳本學習(二)-grep

1.     grep/egrep
      -c
 :打印符合要求的行數
      -n :在輸出符合要求的行的同時連同行號一起輸出
      -v :打印不符合要求的行
      -r  : 會把目錄下面所有的文件全部遍歷一遍
      -i  : 忽略大小寫


2.     例子介紹
    過濾出帶有某個關鍵詞的行並輸出行號          grep –n ‘root’ 1.txt
    過濾出不帶有某個關鍵詞的行並輸出行號         grep –n –v ‘root’ 1.txt
    過濾出所有包含數字行                      grep –n ‘[0-9]’   1.txt
    過濾出所有不包含數字的行                grep –n –v ‘[0-9]’ 1.txt
    去除所有以‘#’開頭的行                    grep –v ‘^#’ 1.txt
    去除所有空行和以‘#’開頭的行              grep –v ‘^$’ 1.txt | grep –v ‘^#’

    過濾出以英文字母開頭的行                    grep –v ‘^[a-zA-Z]’ 1.txt

    統計次數                               grep –o ‘root’ 1.txt | wc –l

    把出現的下兩行打印出來                     grep –A2 –n ‘root’ 1.txt
    搜索etc目錄下某個關鍵詞的所有文件              grep –r ‘root’/etc/
    指定過濾字符次數                         grep ‘o\{2\}’passwd

   過濾任意一個或多個字符     grep ’r.o’ passwd ; grep ‘r*t’ passwd ; grep ‘r.*t’ passwd

    .表示任意一個字符; *表示0個或多個前面的字符; .*表示0個或多個任意字符,空格也包含在內

   n結尾的字符                           grep –n ‘n$’ 1.txt

    +和?比較特殊,如果在grep中使用要-E或者轉義

 

3.     egrep = grep –E
   egrep
工具是grep的擴展
   表示1個或1個以上前面的字符            egrep ‘o+’ 1.txt
   表示0個或1個前面字符                egrep  ‘o?’  1.txt
   匹配roo或者body                    egrep ‘roo|body’ 1.txt
   用括號表示一個整體                  egrep ‘r(oo)|(at)o’ 1.txt
   表示1個或多個’oo’                 egrep ‘(oo)+’  1.txt

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章