Может кто-нибудь объяснить, почему этот код не работает должным образом?Я ожидал бы, что он будет соответствовать только первому символу, и это происходит с литеральными символами, но классы подстановочных знаков (.) И символов ведут себя странно:
Я использую -o только для демонстрации того, как все соответствует,не меняет то, что соответствует вообще.
$ echo foo | grep -o '^.'
f
o
o
Некоторое более неожиданное поведение:
$ echo foobarbazquux | grep -o '^[foarqux]'
f
o
o
$ echo foobarbazquux | grep -o '^.[^u]'
fo
ob
ar
ba
zq
По существу, сопоставление начала строки (^) не ведет себя должным образом в этихслучаев.Есть ли способ заставить его вести себя более нормально?