her*_*ys6 3 grep regular-expression
我在 Ubuntu 16.04
试:
grep '.*' file1
输出:
file nu-mber o-ne
second string
试: grep '.+' file1
输出不存在
为什么加号不起作用?
您需要告诉grep
您正在使用扩展正则表达式:
grep -E '.+' file1
Run Code Online (Sandbox Code Playgroud)
与扩展正则表达式运算符等效的标准基本正则表达式(由grep
without 使用-E
)虽然某些实现(如 GNU 的)也将其识别为扩展(并且您始终可以使用)。 +
\{1,\}
\+
..*
(请注意,在这种特殊情况下grep -E .+
,相当于grep -E .
在不使用该-x
选项时您正在寻找与正则表达式匹配的子字符串。在许多系统egrep
上提供了与 等效的命令grep -E
,但正如Graeme 指出的那样,这是过时的。)