Разбор темы

Пустая строка в терминах regex — это позиция, где якорь начала ^ вплотную примыкает к якорю конца $ без единого символа между ними. Строка из одних пробелов под это определение не подпадает — она непустая, и если такие тоже надо убрать, шаблон расширяют пробельным классом. Убрать подходящие строки можно двумя способами: инверсией совпадений в grep (оставить всё, что НЕ совпало) либо командой удаления по адресу-шаблону в sed. Якоря ^ и $ работают одинаково в BRE и ERE, режим -E тут не нужен.

Что проверяется

  1. Пустых строк нет
  2. Осталось 3 строки

Как это выглядит