有人可以解释为什么这段代码没有按预期工作?我希望它只匹配第一个字符,它与文字字符匹配,但通配符(.)和字符类表现奇怪:
我使用-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)
实际上,行首匹配器(^)在这些情况下的行为并不像预期的那样.有没有办法让它表现得更正常?