У меня есть что-то подобное в файле 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 ]
Чтобы запустить многострочный поиск с помощью grep, вам нужно добавить несколько вариантов, поэтому попробуйте:
grep -Pzo '(?s){.*?}' testttt
Решение с хорошим объяснением можно найти (и украдено :)) из stackoverflow.
Если у вас есть pcregrep, вы можете найти его более полезным в общем случае, поскольку он поддерживает регулярное выражение PERL 5.