Se o seu grep não suporta -P ou --perl-regexp, e você pode instalar o grep habilitado para PCRE, por exemplo, "pcregrep", então ele não precisará de nenhuma opção de linha de comando como GNU grep para aceitar o padrão compatível com Perl expressões, você acabou de correr
pcregrep "Ui\.(?!Line)"
Você não precisa de outro grupo aninhado para "Linha" como em seu exemplo "Ui. (?! (Linha))" - o grupo externo é suficiente, como mostrei acima.
Deixe-me dar outro exemplo de como procurar asserções negativas: quando você tem uma lista de linhas, retornada por "ipset", cada linha mostrando o número de pacotes no meio da linha, e você não precisa de linhas com pacotes zero, você apenas corre:
ipset list | pcregrep "packets(?! 0 )"
Se você gosta de expressões regulares compatíveis com perl e tem perl, mas não tem pcregrep ou seu grep não suporta --perl-regexp, você pode criar scripts perl de uma linha que funcionam da mesma maneira que grep:
perl -e "while (<>) {if (/Ui\.(?!Lines)/){print;};}"
Perl aceita stdin da mesma forma que grep, por exemplo
ipset list | perl -e "while (<>) {if (/packets(?! 0 )/){print;};}"