Условие1 - совпадение образца со строкой во вводе.
Условие2 - наличие ключа -х
Если Условие1 != Условие2 - печатать строку.
Что означает - печатать только тогда, когда
- или найдено и не задан ключ -х
- или не найдено и задан ключ -х
А вообще-то да, код суровый). Но как его упростить, я вот не вижу. Можно "размазать", но я не верю, что станет понятнее...