egrep匹配表达式与通配符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了egrep匹配表达式与通配符相关的知识,希望对你有一定的参考价值。

通过一些练习,卡在这一个:

egrep "s*as" states.txt

## Alaska
## Arkansas
## Kansas
## Massachusetts
## Nebraska

我能理解为什么选择阿肯色州,堪萨斯州,马萨诸塞州,为什么选择阿拉斯加?应该有“s * as”的第一个“s”,不是吗?我错过了什么吗?对不起,如果答案很明显,我不明白。 grep给出了相同的结果。

答案

在您下面的egrep电话中:

egrep "s*as" states.txt

数量s*意味着匹配s零次或多次。因此,Alaska匹配,因为它包含as。如果你打算匹配s,后跟任何单个字符,然后是as然后使用dot:

egrep "s.as" states.txt

请注意,文件名通配符和正则表达式之间存在差异。

*正则表达,引用GNU Grep manual

前面的项目将匹配零次或多次

文件名通配符中的*,引用Bash Reference Manual

匹配任何字符串,包括空字符串

以上是关于egrep匹配表达式与通配符的主要内容,如果未能解决你的问题,请参考以下文章

grep egrep 通配符

Linuxgrep和正则表达

grep与正则表达式

Linux正则表达式与通配符

13 shell脚本--005grep和正则表达式

[CommandDetail] grep egrep fgrep