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次

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

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

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

  •   1:模式从左侧起,第一个左括号及与之匹配的右括号之间模式匹配到的内容
  •   2:模式从左侧起,第二个左括号及与之匹配的右括号之间模式匹配到的内容...
原文地址:https://www.cnblogs.com/qionglouyuyu/p/9496790.html