По умолчанию grep
использует базовые регулярные выражения. Вы можете выразить свои критерии так:
grep "DROP \+TABLE" * | grep -v "IF \+EXISTS"
-v
инвертирует совпадение.
Использование режима -v
" word regex " может быть более безопасным (но правильный синтаксический анализатор будет лучше, если ваш входной файл может содержать произвольно сложные операторы SQL):
grep -w "DROP \+TABLE" * | grep -vw "IF \+EXISTS"
Если в вашем файле есть строка вроде:
NODROP TABLE FOO
Первая версия будет включать его в вывод, а вторая - нет.
DROP TABLE FOO IF ISEXISTSWHATERVER
Будет включено в первую версию, но будет отфильтровано в версии с -w
.
Спасибо hek2mgl за предложение -w
.