Поясню что было не так в вашей команде. Похоже, вы не совсем понимаете принцип конвейера (
|).
cat < dump.sql | wc -l | grep -i 'DROP TABLE IF EXISTS' | awk {'print $1'}
Здесь
cat < dump.sql делает то, что нужно — печатает весь дамп в STDOUT, но
cat не нужно перенаправление вывода (
<), поэтому лучше писать так:
cat dump.sql.
Затем строка с дампом передаётся в STDIN
wc -l. На выходе в STDOUT поступает строка вида
12345. То есть это просто число строк в исходном дампе. Но вы далее в строке
12345 пытаетесь найти вхождения
DROP TABLE IF EXISTS c помощью
grep. Уже тут получаете пустую строку, а
awk показывает результат работы над пустой строкой — новую пустую строку.