1. grep命令参数选项
 
-? 同时显示匹配行上下?行,如grep -2 'pattern' filename,
 -A ? 同时显示匹配行下?行grep -A 10 'pattern' filename
 -B ? 同时显示匹配行上?行
 -c 打印匹配次数
 -E 扩展正则egrep 
-f  两个文件相同行  如,grep -f file1 file2 
 
 -F fgrep
 -h 不显示匹配行所在文件名
 -H 同时显示行和文件名
 -i 忽略大小写
 -l 只显示匹配到的文件名
 -n 显示行号
 -o 只显示匹配的字符
 -r 递归查询
 -v 只显示不匹配的行 
2. grep正则表达式元字符集(基本集)
 
^ 锚定行的开始 如:'^grep'匹配所有以grep开头的行。
 $ 锚定行的结束 如:'grep$'匹配所有以grep结尾的行。^$一起用代表空行
 . 匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。
 * 匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。 .*一起用代表任意字符。
 [] 匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。
 [^] 匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。
 \(..\) 标记匹配字符,如'\(love\)',love被标记为1。
 \< 锚定单词的开始,如:'\<str'匹配包含以str开始的单词的行
 \> 锚定单词的结束,如'str\>'匹配包含以str结尾的单词的行。
 x\{m\} 
  重复字符x,m次,如:'a\{5\}'匹配包含5个a的行。
 x\{m,\} 
  重复字符x,至少m次,如:'a\{5,\}'匹配至少有5个a的行。
 x\{m,n\}
  重复字符x,至少m次,不多于n次,如:'a\{5,10\}'匹配5-10个a的行 
3. 用于egrep和 grep -E的元字符扩展集
 
+ 匹配一个或多个先前的字符。如:'[a-z]+able',匹配一个或多个小写字母后跟able的串,如loveable,enable,disable等。
 ? 匹配零个或多个先前的字符。如:'gr?p'匹配gr后跟一个或没有字符,然后是p的行。
 a|b|c
  匹配a或b或c。如:grep|sed匹配grep或sed
 () 分组符号,如g(la|oo)d匹配glad或good
 ()+ 多个重复分组匹配,如A(xy)+B匹配A开头B结尾中间一个以上的xy如AxyB.AxyxyB.AxyxyxyB
 x{m},x{m,},x{m,n}
  作用同x\{m\},x\{m,\},x\{m,n\} 
 
 
4. POSIX字符类 
[:alnum:] 0-9, A-Z, a-z 
 [:alpha:] A-Z, a-z 
 [:digit:] 0-9 
 [:lower:] a-z 
 [:upper:] A-Z