Мне не удалось довести решение до абсолютного удовлетворения всех поставленных задач, не устанавливая никаких дополнительных пакетов
grep "выражение" файлик_общий >> файлик_с_выражением
grep -v "выражение" файлик_общий >> файлик_исключая_выражение
ну и чистим файлики перед каждым запуском grep, т.к. он дописывает не новые, а полностью все данные из файлика_общего в конец
cat /dev/null > файлики_после_gpep
Хм, а Вы, быть может, знаете правильное решение?