Групповая съемка между фигурными скобками

У меня есть что-то подобное в файле testtt:

{It captures this! }
// question: 2572410  name: Question 2

::Question 2::[html] Is it going to be -40 tomorrow?

{
It can't
capture this!!! why?
}

, когда я это делаю:

grep -o '{\([^}]*\)}' testttt

Он не может захватить многострочные фигурные скобки. Любая помощь в том, чтобы изменить его таким образом, чтобы он мог захватывать оба, был бы использован!

PS. Я также тестировал данное решение: Как я могу использовать grep для нескольких шаблонов на нескольких строках? и он дает следующую ошибку:

grep: unescaped ^ or $ not supported with -Pz

Вы можете найти текстовый файл для вывода и содержимого файла . Как grep для нескольких шаблонов на нескольких строках? [!d6 ]

1
задан 13 April 2017 в 15:24

1 ответ

Чтобы запустить многострочный поиск с помощью grep, вам нужно добавить несколько вариантов, поэтому попробуйте:

 grep -Pzo '(?s){.*?}' testttt

Решение с хорошим объяснением можно найти (и украдено :)) из stackoverflow.

Если у вас есть pcregrep, вы можете найти его более полезным в общем случае, поскольку он поддерживает регулярное выражение PERL 5.

2
ответ дан 23 May 2018 в 04:36

Другие вопросы по тегам:

Похожие вопросы: