Linux中grep,egrep和fgrep的区别

在Unix系统上的一个着名的搜索工具,可以用于搜索任何东西,无论是一个文件,或一行或多行的文件是grep实用程序。它在功能上非常庞大,这可以归因于它支持的大量选项:使用字符串模式或reg-ex模式或基于perl的reg-ex等搜索。

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 则不需

fgrep

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

weinxin
我的微信
扫一扫加我微信
echo

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: