(1)文本查找  寻找含有特定文本的行
   grep 基本正则表达式(Basic Regular Expression,BRE)
     grep -E 相当于 egrep
     grep -F 相当于 fgrep
          -i 忽略大小写
          -l 列出匹配模式的文件名称,而非打印匹配的行
          -q 匹配成功会离开且不将匹配的行写入标准输出,否则即是不成功
          -s 显示错误信息 通常与q并用
          -v显示不匹配的行
          -n 显示匹配项的行号
          -An 显示匹配项及匹配项的后n行
          -Bn 显示匹配项及匹配项的前n行
          -Cn
          --color 把匹配的字符高亮显示
         
   egrep 扩展正则表达式(Extended Regular Expression,ERE)这是一套功能更强大的正则表达式,但是会消耗大量的运算资源。
   fgrep 快速grep 此版本匹配固定字符串而非正则表达式,使用优化的算法,能匹配多个字符串
(2)元字符是这样一类字符,它们所表达的是不同字面本身的含义
正则表达式元字符
 元字符  功能                       示例      匹配对象
  ^      行首定位符                 /^tom/ 匹配所有以tom开头的行
  $      行尾定位符                 /tom$/ 匹配所有以tom结尾的行
  .      匹配单个字符               /t.m/ 匹配包含一个t,后跟一个字符,再跟一个m的行
  *      匹配0个或多个重复的位于星号前面的字符 /*tom/ 匹配包含跟在零个或多个空格后的模式tom的行
  []     匹配一组字符中的任一个      /[tT]om/ 匹配包含tom或Tom的行
  [x-y]  匹配指定范围内的一个字符    /[A-Z]om/匹配后面跟着om的一个A至Z之间的字符
  [^]    匹配不在指定组内的字符      /[^A-Z]/ 匹配不在范围A至Z之间的任意一个字符
  \      用来转义元字符             /tom\*/ 匹配包含tom后面跟一个*的字符
  \<     词首定位符                  /\<tom/  匹配包含以tom开头的词的行
  \>     词尾定位符                  /tom\>/ 匹配包含以tom结尾的词的行
  \(..\) 匹配稍后将要使用的字符的标签 /\(tom\)
  x\{m\}或x\{m,\}或x\{m.n\}          o\{5,10\}
 
posix方括号字符集



grep支持的元字符



egrep支持的元字符



练习:
1、显示/proc/meminfo文件中以不区分大小的s开头的行;
  grep --color "^[sS]" /proc/meminfo
2、显示/etc/passwd中以nologin结尾的行;
  grep  --color "nologin$" /etc/passwd
3、显示/etc/inittab中以#开头,且后面跟一个或多个空白字符,而后又跟了任意字符的行;
  grep --color "^#[[:space:]]\{1,\}.*" /etc/inittab
4、显示/etc/inittab中包含了:一个数字:(即两个冒号中间一个数字)的行;
  grep --color ":[0-9]:" /etc/inittab
5、显示/boot/grub/grub.conf文件中以一个或多个空白字符开头的行;
  grep  --color "^[[:space:]]\{1,\}.*" /boot/grub/grub.conf
6、显示/etc/inittab文件中以一个数字开头并以一个与开头数字相同的数字结尾的行;
  grep --color "^\([0-9]\).*\1$" /etc/inittab
7、ifconfig命令可以显示当前主机的IP地址相关的信息等,如果使用grep等文本处理命令取出本机的各IP地址,要求不包括127.0.0.1;
  ifconfig |grep --color "inet addr" |grep -v '127.0.0.1'|cut -d: -f2 |cut -d" " -f1
  或ifconfig | grep --color "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" |grep --color -v "127\.0\.0\.1" 
8、显示/etc/sysconfig/network-scripts/ifcfg-eth0文件中的包含了类似IP地址点分十进制数字格式的行;
   grep  "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" /etc/sysconfig/network-scripts/ifcfg-eth0
  或 egrep "([0-9]{1,3}\.){3}([0-9]{1,3})"  /etc/sysconfig/network-scripts/ifcfg-eth0