grep及正则表达式

grep [OPTIONS] PATTERN [FILE...]

OPTIONS:

   -i:忽略字符的大小写

  -o:仅显示匹配到的字符串

  -v:显示不能被模式匹配到的行

  -E:支持使用扩展的正则表达式,grep -E等同于egrep,正则表达式可以不使用转义符\

  -q:静默模式,即不输出任何信息

  -A #:显示被模式匹配的行及其后#行

  -B #:显示被模式匹配的行及其前#行

  -C #:显示被模式匹配的行及其前后各#行

正则表达式元字符
  ‘^‘: 锚定行首   cat try.txt | grep "^I"  显示以"I"开头的行

  ‘$’: 锚定行尾  cat try.txt | grep ".$"  显示以"."结尾的行

  ‘.‘: 匹配任一一个字符

  ‘*’: 匹配零个或多个先前字符,.*组合起来就是匹配多个任意字符

  ‘\?‘:匹配其前面的字符0次或者1次; cat try.txt | grep -o "C+\?"  显示C+出现的所有位置(匹配+号0次或一次)

  ‘\+’:匹配其前面的字符1次或者多次; cat try.txt | grep -o "C+\+"  示C++出现的所有位置(匹配+号1次或多次)

  ‘\{m\}‘:匹配其前面的字符m次(\为转义字符)

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

  ‘[]‘: 匹配一个指定范围内的字符 | ‘[^]’匹配指定范围外的任意单个字符

  ‘\<‘或‘\b’:锚定词首,‘\>’或‘\b’:锚定词尾(可用\<PATTERN\>:匹配完整单词) cat try.txt | grep -o "\bthi.k\b" 匹配单词诸如think,thick...

  ‘\(\)’:小括号的作用,是对文本进行分组。  grep -o 'C\(++\).*\1' try.txt  输出从C++之后再次匹配++之间的所有字符

  •   \1:模式从左侧起,第一个左括号及与之匹配的右括号之间模式匹配到的内容
  •   \2:模式从左侧起,第二个左括号及与之匹配的右括号之间模式匹配到的内容...

posted on 2018-08-18 12:09  joannae  阅读(174)  评论(0编辑  收藏  举报

导航