通过一些练习,卡在这一个:
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:
匹配任何字符串,包括空字符串