linux中的grep|egrep|fgrep

1.grep

  grep处理文本时,是以行为单位。

  使用命令的形式:grep pattern filename/dirname

    重要的选项:

    -i   忽略大小写的不同

   -o   表示仅显示被模式匹配到的字符串,而不是将整行显示处理

   -P   grep命令后面的正则表达式RE遵循的是perl语言中的正则表达式规范

   -G  grep命令后面的正则表达式RE遵循的是shell语言中的正则表达式规范

   -v   反向选择

   -n  输出匹配行在文本中行号

   --color=auto  给匹配的字符串加上颜色

   -A num   不仅输出所匹配的行,还要输出匹配行之后的num行

   -B num   不仅输出所匹配的行,还要输出匹配行之前的num行

   -C num   不仅输出所匹配的行,还要输出匹配行前后的num行

   -c  grep命令输出不再是被匹配行的内容,而是被匹配行的行数

   -r  表示递归子目录中的所有文件,来查找匹配行

   -R  与-r一样

   -w word   如果目标串中含有word单词,才能匹配上。如果目标串中有word字符串但不是一个独立的单词(前后没空格),那么也是匹配不上的

  

grep使用举例:

grep -o -P '(?<=ItemsCount:)\d+' apache.log | awk 'BEGIN{sum=0;} {sum=sum+$1} END{print sum/NR}'

注意(?<=ItemsCount:)\d+是符合perl语言中正则表达式规范的RE


2.egrep

egrep即是grep -E,grep默认仅支持基础正则表达式,如果要使用扩展正则表达式,需要使用egrep或grep -E。

例如:egrep ‘abc|xyz’ test.log 可以匹配abc或xyz,但将上述egrep换成grep,那么就表示匹配abc|xyz字符串了。


3.fgrep

fgrep即是grep -F,fgrep不支持基础正则表达式和扩展正则表达式,若pattern中包含了RE字符,则将其解释为普通的字符。

你可能感兴趣的:(linux中的grep|egrep|fgrep)