grep:"^." 不正确匹配

buk*_*zor 3 regex grep posix

有人可以解释为什么这段代码没有按预期工作?我希望它只匹配第一个字符,它与文字字符匹配,但通配符(.)和字符类表现奇怪:

我使用-o只是为了证明事物是如何匹配的,它根本不会改变匹配的东西.

$ echo foo | grep -o '^.'
f
o
o
Run Code Online (Sandbox Code Playgroud)

一些更意外的行为:

$ echo foobarbazquux | grep -o '^[foarqux]'
f
o
o

$ echo foobarbazquux | grep -o '^.[^u]'
fo
ob
ar
ba
zq
Run Code Online (Sandbox Code Playgroud)

实际上,行首匹配器(^)在这些情况下的行为并不像预期的那样.有没有办法让它表现得更正常?

nin*_*alj 5

找到了:

窃听器

更改修复日志

显然在2.5.2中修复.通过启动板找到它.