Независимо от того, используете ли вы двойные или одинарные кавычки, если вы используете подобную Борну оболочку, gawk увидит программу в точности так, как она отображается между кавычками. Даже в двойных кавычках как Bourne, так и csh-подобные оболочки используют только \ перед символами, которые могут нуждаться в экранировании (например, $, и в случае csh,! делай что хочешь).
! не имеет смысла пялиться в этом контексте, поэтому выдает ошибку. Для «вывода строк с количеством полей, отличных от 6 и заканчивающихся обратной косой чертой», используйте:
gawk 'NF != 6 && /\\$/' file
То есть: совпадать со строками, которые не имеют 6 полей и совпадают с \ непосредственно предшествующими концом строки ($). \ Должен быть экранирован с другой обратной косой чертой, потому что gawk тоже использует \ для экранирования - хотя в случае gawk все \ (кроме тех, которые экранированы другим \) поглощаются; те, которые не выходят за пределы специального символа, просто исключаются.
Без связанного действия, действие по умолчанию (вывести строку) будет выполнено, когда выполнено это условное утверждение.