AWK expresión regular negativa

Estoy buscando tener una expresión regular awk que pueda dar todas las cadenas que no coincidan con una palabra en particular.

usando /^((?!word \+).)*/ funciona en Java pero no funciona en AWK.

Obtener el error de compilation fallida, el escapingse de los corchetes corrige el error de compilation, pero la coincidencia de expresiones regulares no es correcta.

Sería genial si alguien puede ayudar con una expresión normal awk.

No puedo usar la string" !~ /regex/

Necesito usar la string" ~ /regex/ regex shuould pasar para todas las cadenas, pero para una cadena específica.

Las cadenas que contienen el domain deben filtrarse. Entrada

 This is domain test This is do test This is test 

Salida

 This is do test This is test 

Solo tiene que ver con la expresión regular. No se puede cambiar el código Awk

en AWK es como una string" ~ /regex/

entonces solo puede pasar una expresión regular para lograr esto.

La forma en que haces esto en awk es escribir un patrón que coincida con lo que deseas excluir y realizar su acción a next . Eso deja las líneas para procesar que son la negación del patrón que estás tratando de lograr.

Algo como esto:

 /regex/{ next; } { print; } 

awk no es compatible con PCRE (Expresión regular compatible de Perl), por lo que no puede usar ninguna vista de ancho cero como la búsqueda anticipada negativa que está usando, (?!word +) .

El motor Regex de awk solo es compatible con ERE (expresión regular extendida). Necesita incorporar todas las lógicas allí o puede dividir la lógica para satisfacer sus necesidades. También mire las funciones integradas de awk , compruebe si son de alguna ayuda al respecto.

Tratar:

 awk -v re="^([^d]|d*d[^do]|[do]*o(d*d[^do]|[^dm])|[dom]*m(d*d[^do]|[do]\ *o(d*d[^do]|[^dm])|[^da])|[doma]*a(d*d[^do]|[do]*o(d*d[^do]|[^dm])|[dom\ ]*m(d*d[^do]|[do]*o(d*d[^do]|[^dm])|[^da])|[^di])|[domai]*i(d*d[^do]|[d\ o]*o(d*d[^do]|[^dm])|[dom]*m(d*d[^do]|[do]*o(d*d[^do]|[^dm])|[^da])|[do\ ma]*a(d*d[^do]|[do]*o(d*d[^do]|[^dm])|[dom]*m(d*d[^do]|[do]*o(d*d[^do]|\ [^dm])|[^da])|[^di])|[^dn]))*[domai]*$" '$0 ~ re' 

Eso solo funciona para cadenas (como el dominio aquí) donde todos los personajes son diferentes.