У меня есть файл cases
:
foo
bar
cases:
1: foo
2: bar
baz
cases:
3: baz
quux
Поскольку отступ всегда возвращается снова после дел, я хочу перечислить дела с помощью grep -zoP '(\s*)cases:\n(\1.*\n)*' cases
, но это выдает
cases:
cases:
Принимая во внимание, что если я использую grep -zoP '(\s*)cases:\n(\1.*\n){1,}' cases
, я получаю вывод, который мне нужен:
cases:
1: foo
2: bar
cases:
3: baz
Это поведение не отображается ни с одним подобным регулярным выражением, которое я пробовал:
$ grep -o '\(foo\)bar\(\1\)*'<<<$'foobarfoofoofoofoo'
foobarfoofoofoofoo
$ grep -o '\(foo\)bar\(\1\)*'<<<$'foobarfoofoofoofoobax'
foobarfoofoofoofoo
$ grep -oP '(foo)bar(\1)*'<<<$'foobarfoofoofoofoobax'
foobarfoofoofoofoo
$ grep -zoP '(foo)bar(\1)*'<<<$'foobarfoofoofoofoobax'
foobarfoofoofoofoo
$ grep -zoP '(foo)\n*bar'<<<$'foo\n\n\n\n\n'
foo
$
Почему grep предпочитает совпадать с моим регулярным выражением 0 раз?