“字符串匹配”和“模式匹配”之间的区别

时间:2018-06-22 06:17:37

标签: bash grep pattern-matching string-matching

fgrep命令不同于grep和egrep命令,因为它搜索字符串而不是搜索与表达式匹配的模式。

有人可以用一个简单的例子来解释使用上的区别吗?

1 个答案:

答案 0 :(得分:1)

fgrep等效于grep -Fegrep等效于grep -E

grep -F匹配字符串,而grep -E匹配扩展的正则表达式。

给出输入文件:

$ cat file
Hello Alice!
Hello Bob!
Hi Alice!!
Hi Bob!!

模式匹配:

$ grep -E -f <(echo -e "Ali.*\nBob") file
Hello Alice!
Hello Bob!
Hi Alice!!
Hi Bob!!

字符串匹配:

$ grep -F -f <(echo -e "Ali.*\nBob") file
Hello Bob!
Hi Bob!!

在第二个示例中,Ali.*Alice不匹配,因为grep将其作为乱抛字符串。

我建议看看this page