Tenho certeza de que seu problema está no regexp. Você precisará mover a asserção antecipada na frente do caractere curinga para corresponder somente as linhas que não terminam em discard
. Por exemplo, ^(?!.* discard$)(.*)$
.
Depois de fazer essa alteração, você terá um problema adicional em que as linhas vazias também corresponderão - provavelmente indesejáveis. Use algo como ^(?!.* discard$)(.+)$
para corrigir esse problema, combinando um ou mais caracteres com .+
(em vez de zero ou mais, .*
).
Como alternativa, você pode usar uma declaração lookbehind, como em ^(.+)(?<! discard)$
.