grep,global search regular expression(RE) and print out the line,是一种强大的文本搜索工具,他能使用正则表达式搜索文本,把匹配到的行打印出来。

grep语法: grep [OPTIONS] PATTERN [FILE...]

 1.选项:

   --color=auto匹配的字符高亮颜色显示

   -v: 反向选取,只显示不符合模式的行;

   -o: 只显示被模式匹配到的字串,而不是整个行;

   -i: 不区分字符大小写;

   -A #:显示匹配到的行时,顺带显示其后面的#个行;例: -A 2

   -B #:前面的#行;

   -C #:前后的#行;

   -E: 使用扩展的正则表达式,grep -E = egrep

 2.正则表达式的元字符

   ^:锚定行首的符合条件的内容,用法格式“^pattern”

   $: 锚定行尾的符合条件的内容,用法格式“pattern$”

   .: 匹配任意单个字符

   *:匹配紧挨在其前面的字符任意次

   .*: 匹配任意长度的任意字符

   []:匹配指定范围内的任意单个字符

   [^]:匹配指定范围外的任意单个字符

   \?: 匹配紧挨在其前面的字符0次或1次

   \{m,n\}: 匹配其前面的字符至少m次,至多n次

      \{0,n\}: 至多n次;0-n次

      \{m,\}:至少m次

      \{m\}: 精确匹配m次

   \<: 锚定词首,用法格式:\<pattern

   \>: 锚定词尾,用法格式:pattern\>

   \(\): 分组,用法格式: \(pattern\),引用前面匹配到的字符集,使用\1引用

 3.POSIX字符集

   [:lower:]小写字符[a-z]

   [:upper:]大写字符[A-Z]

   [:digit:]数字字符[0-9]

   [:alpha:]文字字符[A-Za-z]

   [:alnum:]文字数字字符[A-Za-z0-9]

   [:space:]空白字符

   [:punct:]标点符号

 4.例子

   1.搜索/etc/passwd文件中包含"root"的行

   grep与正则表达式入门简介_正则表达式

   2.搜索/etc/passwd文件中以"root"开头的行

   grep与正则表达式入门简介_grep_02

   3.搜索/etc/passwd文件中以"sh"结尾的行

   grep与正则表达式入门简介_正则表达式_03

   4.显示/etc/rc.d/rc.sysinit中以#开头,且后面跟一个或多个空白字符,而后又跟了任意非空白字符的行

grep与正则表达式入门简介_grep_04

要用好grep这个工具,其实就是要写好正则表达式,更多的是需要多多练习,希望大家一起共同进步.