【问题标题】:egrep matching expressions with wildcardegrep 用通配符匹配表达式
【发布时间】:2017-12-22 01:28:15
【问题描述】:

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

egrep "s*as" states.txt

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

我可以理解为什么它选择阿肯色州、堪萨斯州、马萨诸塞州,但为什么选择阿拉斯加? “s*as”应该有第一个“s”,不是吗?我是否遗漏了一些显而易见的东西?对不起,如果答案很明显,我不明白。 grep 给出相同的结果。

【问题讨论】:

标签: regex bash grep wildcard


【解决方案1】:

在您拨打下方的egrep 时:

egrep "s*as" states.txt

数量s*表示匹配s次或更多次。因此,Alaska 匹配,因为它包含 as。如果您打算匹配s,后跟任何单个字符,然后是as,则使用点:

egrep "s.as" states.txt

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

* 在正则表达式中,引用GNU Grep manual

前一项将被匹配零次或多次


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

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

【讨论】:

  • @PesaThe 随意编辑我的答案。我可以解释 OP 观察结果的唯一方法是 * 正在量化前面的 s
猜你喜欢
  • 2023-03-30
  • 2013-10-28
  • 1970-01-01
  • 2018-07-26
  • 2011-03-01
  • 2021-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多