Usando AWK:
awk -F '[/"]' '/"rules": /,/],/{if(/"rules": |],/) next; print $(NF-1)}' file.txt
Добавьте .*
в конец регулярного выражения.
pcregrep -M 'This error\n.*\n.*\n.*' file
pcregrep -vM 'This error\n.*\n.*\n.*' file
Я не знаю, из-за ошибки это или нет, но кажется -v
также исключает полную строку после последнего совпадающего \n
, но без -v
это не так. Таким образом, добавление .*
(, то есть отсутствие окончания регулярного выражения с помощью \n
), приводит к тому, что оно явно соответствует последней строке в обоих случаях, поэтому не вызывает проблему/функцию.