grep 和 fgrep 命令的区别

grep 过滤器在文件中搜索特定模式的字符并显示包含该模式的所有行。 fgrep 过滤器在一个或多个文件中搜索固定字符串。

grep命令的语法:

$ grep [options] pattern [files] 

fgrep命令的语法:

$ fgrep [options] pattern [files] 

这两个命令的主要区别是:

  • 使用的字符串匹配算法。
  • fgrep 总是使用最差 O(m+n) 复杂度的 Aho-Corasick 算法。
  • grep 命令总是使用最坏情况 O(mn) 复杂度的 Commentz-Walter 算法的修改版本。
  • fgrep 命令将 PATTERN 解释为由换行符分隔的固定字符串列表。 但是 grep 总是被解释为正则表达式。

两个命令之间的相似性
假设有一个名称为 para2 的文件,内容如下:

Hi, are you using yiibai for learning computer science concepts. Yiibai.com is best for learning. 

假设有一个名称为 word2 的文件,内容如下:

are using yiibai learning concepts 

使用 grep 命令:

$grep -f word2 para2 

输出内容如下:

Hi, are you using yiibai for learning computer science concepts.
Yiibai.com is best for learning.

使用 fgrep 命令:

$ fgrep -f word para 

输出结果:

Hi, are you using yiibai for learning computer science concepts.
Yiibai.com is best for learning.

假设 word 文件的内容如下:

Hi, @re you usin.g yii*bai for learning computer science con/cepts. Yii*bai is best for learning. 

para 文件的内容如下:

@re usin.g yii*bai learning con/cepts 

使用 grep 命令:

$ grep -f word para 

运行结果:

Hi, @re you usin.g yiibai for learning computer science *con/cepts.

使用 fgrep 命令:

$ fgrep -f word para 

运行结果:

Hi, @re you usin.g yii*bai for learning computer science con/cepts.
Yiibai is best for *learning.

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/264242.html

(0)
上一篇 2022年6月7日
下一篇 2022年6月7日

相关推荐

发表回复

登录后才能评论