微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux 文本搜索命令 grep egrep fgrep 区别

grep

传统的 grep 程序,在没有参数的情况下,只输出符合 RE 字符串之句子. 常见参数如下:

-v: 逆反模示,只输出”不含” RE 字符串之句子.

-r: 递归模式,可同时处理所有层级子目录里的文件.

-q: 静模式,不输出任何结果(stderr 除外. 常用以获取 return value,符合为 true,否则为 false .)

-i: 忽略大小写.

-w: 整词比对,类似 <word> .

-n: 同时输出行号.

-c: 只输出符合比对的行数.

-l: 只输出符合比对的文件名称.

-o: 只输出符合 RE 的字符串. (gnu 新版独有,不见得所有版本都支持.)

-E: 切换为 egrep .

egrep

为 grep 的扩充版本,改良了许多传统 grep 不能或不便的操作. 比方说:

  • grep 之下不支持 ? 与 + 这两种 modifier,但 egrep 则可.
  • grep 不支持 a|b 或 (abc|xyz) 这类”或一”比对,但 egrep 则可.
  • grep 在处理 {n,m} 时,需用 { 与 } 处理,但 egrep 则不需.

    诸如此类的… 我个人会建议能用 egrep 就不用 grep

fgrep

不作 RE 处理,表达式仅作一般字符串处理,所有 Meta 均失去功能.

选项解释

In  addition, three  variant  programs  egrep, fgrep  and  rgrep  are
available.   egrep  is  the  same  as  grep -E.   fgrep  is the same as
grep -F.  rgrep is the same as grep -r.  Direct  invocation  as  either
egrep  or  fgrep  is  deprecated, but  is provided to allow historical
applications that rely on them to run unmodified.

-E,--extended-regexp
       Interpret  PATTERN  as  an extended regular expression_r(ERE,see
       below).  (-E is specified by POSIX.)

-F,--fixed-strings
       Interpret PATTERN as a  list  of  fixed  strings, separated  by
       newlines, any  of  which is to be matched.  (-F is specified by
       POSIX.)

机译:

此外,还有三个变体程序,例如egrep,fgrep和rgrep可用。 egrep与grep -E相同。 fgrep与grep -F。 rgrep与grep -r相同。 可以直接调用egrep或fgrep已弃用,但提供以允许历史记录依赖它们运行的​​应用程序无需修改


-E,-extended-regexp
将PATTERN解释为扩展的正则表达式_r(ERE,请参见下面)。 (-E由POSIX指定。)


-F,-固定字符串
将PATTERN解释为固定字符串列表,并以换行符,任何要匹配的。 (-F由POSIX。)

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐