经历了一些练习,陷入了困境:
egrep "s*as" states.txt
## Alaska
## Arkansas
## Kansas
## Massachusetts
## Nebraska
我能理解为什么选择阿肯色州,堪萨斯州,马萨诸塞州,为什么选择阿拉斯加?应该有“s * as”的第一个“s”,不是吗?我错过了什么吗?对不起,如果答案很明显,我不明白。 grep给出了相同的结果。
答案 0 :(得分:2)
致电以下egrep
:
egrep "s*as" states.txt
数量s*
表示匹配s
零或更多次。因此,Alaska
匹配,因为它包含as
。如果您打算匹配s
,后跟任何单个字符,然后是as
,请使用点数:
egrep "s.as" states.txt
请注意,文件名通配符和正则表达式之间存在差异。
正则表达式中的 *
,引用GNU Grep manual:
前一项将匹配零次或多次
文件名通配符中的*
,引用Bash Reference Manual:
匹配任何字符串,包括空字符串