テキスト検索必須コマンド-grep egrep fgrepの使い方と正規表現


一、grep、egrep、fgrepコマンド
  本文では主にlinuxシステムの下でgrep egrep fgrepコマンドと正規表現の基本パラメータと使用フォーマット、方法を紹介した.(注記:本文中のfgは例を表し、)
1.1、基本定義:
        grep(global search regular RE)and print out the lineは、正規表現を全面的に検索し、行を印刷する強力なテキスト検索ツールであり、基本的な正規表現を使用してテキストを検索し、一致する行を印刷するしかありません.
    grepはよく見られるコマンドで、文字列データの比較を行い、ユーザーのニーズに合った文字列を印刷するのが主な機能ですが、grepはデータの中で文字列を検索するときに「行全体」単位でデータフィルタリングを行うことを考えています.
    egrepコマンドはgrep-Eに等しく、このコマンドを使用して拡張された正規表現を使用してテキストを検索し、ユーザーのニーズに合った文字列を印刷することができます.
    fgrepコマンドはgrep-Fに等しく、固定文字列を使用してテキストを検索しますが、正規表現の参照はサポートされていないため、このコマンドの実行速度も最も速いです.
1.2、命令基本用法
     grep[option]'検索文字列'filename
     grepの一般的なオプション: 

  
  
  
  
  1. -a : ,  
  2. fg: /etc/inittab rc
  3. grep -a 'rc' /etc/inittab
  4. -c : ' '  
  5. -i :  
  6. -v : , ' '  
  7. -o :  
  8. -n :  
  9. --colour(color):  
  10. -A: n  
  11. -B: n  
  12. -C: n  

二、正規表現
2.1、基本定義:
     正規表現は、ある構文規則に合致する一連の文字列を記述し、一致させるために単一の文字列を使用する.多くのテキストエディタでは、正規表現は通常、あるモードに合致するテキストを取得、置換するために使用されます.簡単に言えば、正規表現は文字列を処理する方法であり、行為単位で文字列の処理を行い、いくつかの特殊な記号の補助を通じて、ユーザーが特定の文字列を簡単に検索/置換することができる.
     正規表現は、基本的な正規表現と拡張された正規表現の2つに分類されます.
2.2、正規表現の詳細
  2.2.1、基本的な正規表現:
      (1)メタ文字:

  
  
  
  
  1. :  
  2.   fg: student student  
  3.   grep ‘student.’ /etc/passwd // ,
  4. []: ,[abc],[a-z],[0-9],[a-zA-Z] 
  5.    fg:  
  6.    grep ‘[0-9]’ /etc/passwd 
  7. [^]:  
  8.   fg: 。 
  9.   grep ‘[^a-z]’ /etc/inittab 
  10. [:space:]:  
  11. [:punct:]:  
  12. [:lower:]:  
  13. [:upper:]:  
  14. [:alpha:]:  
  15. [:digit:]:  
  16. [:alnum:]: ----- [[:alnum:]]  

    (2)回数マッチング:

  
  
  
  
  1.  *  :  
  2. fg: root 0 0  
  3. grep ‘root*’ /etc/passwd 
  4. .* :   
  5. fg: root  
  6. grep 'root.*' /etc/passwd 
  7. \?: 1 0  
  8. \{m,n\} : m, n ) 

     (3)文字アンカー:

  
  
  
  
  1. ^: ,  
  2.   fg: #  
  3.   grep '^#' /etc/inittab 
  4. $: ,  
  5. fg: root  
  6. grep 'root$' /etc/inittab   
  7. ^$: ,  
  8.  \< \b: ,  
  9.   fg: root root  
  10. grep '\<root' /etc/man.config 
  11. \> \b: ,                                   
  12. fg:\<root\>  root   grep "\<root\>" =grep "\broot\b" 

 2.2.2、拡張の正規表現:
     拡張された正規表現は、基本的な正規表現に小さな修正を加えただけで、以下のように修正されます.
     拡張の正規表現では()を()、{}を{}と書き、また+:回数マッチングを加え、その前の文字に少なくとも1回は一致し、上限なし、|:または(二取一)があり、残りは同じで、基本正規表現では(){}.?|を用いる.
         (1)文字マッチングのコマンドと使い方は基本正規表現の使い方と同じであり,ここでは繰り返し説明しない.
         (2)回数マッチング:

  
  
  
  
  1.  * :  
  2. : 0 1  
  3.  + : 1  
  4.    fg: : '[[:space:]]+' 
  5. {m,n} : m n  

          (3)文字アンカーの用法は基本正規表現の用法と同様であり,ここでは述べない.
         (4)特殊文字:

  
  
  
  
  1. :  。 
  2.    fg:grep -E 'c|cat' file: file c cat 
  3. \.:\ , . 

三、grepコマンド利用小例

  
  
  
  
  1. (1) /etc/inittab  # , ,  
  2.  grep '#[[:space:]]*[^[:space:]]' /etc/inittab 
  3.  
  4. (2) 
  5. grep '^[0-9]’  /etc/passwd 
  6.  
  7. (3) 1 2 
  8.   grep '^\(1\|2\)' /etc/inittab grep -E '^(1|2)' /etc/inittab 
  9.     
  10. (4) rc /rc 
  11.   grep '.*\(rc\).*\/\1.*' /etc/inittab 
  12.   
  13. (5) IP 
  14.   ifconfig |grep -A 1 "^eth0" |grep "\<[0-9.]\{1,\} |cut -d: -f2 
  15.   
  16. (6) student( ) , /etc/passwd 
  17.    grep "^student" /etc/passwd 
  18. (7) /proc/meminfo s
  19. grep -i '^s' /proc/meminfo grep '^[sS]' meminfo
  20. (8) /etc/inittab # , ,
  21. grep '^#[[:space:]]*[^[:space:]]' /etc/inittab
  22. (9) /boot/grub/grub.conf
  23. grep '^[[:space:]]\{1,\}' /boot/grub/grub.conf
  24. (10) /etc/inittab
  25. grep '^\([0-9]\).*\1$' /etc/inittab grep '^\([[:digit:]]\).*\1$' /etc/inittab
  26. (11) ifconfig 1-255
  27. ifconfig | egrep '\b[0-9][0-9]\b?|\b1[0-9][0-9]\b|\b2[0-4][0-9]\b|\b25[0-5]\b' --color
  28.