Se os seus pares [
, ]
forem sempre correspondidos e você não cruzar [...]
s com <...>
, e seu grep
suportar a opção -P
(como o GNU grep
quando construído com suporte a PCRE), você pode fazer:
grep -P '>(?!((?:[^]]|\[(?1)\])*)$)'
Ou seja, procure um >
que não seja seguido apenas pelos pares [...]
correspondentes. Ele usa o mecanismo de correspondência recursiva de (?1)
do PCREs.