Если у вас есть оболочка с подстановкой процессов (bash делает, posix shell нет), тогда
make > >(sed s/a/A/) && date
должен сделать трюк, кроме bash, он не ждет sed (кажется, zsh делает, но я только попробовал, но не проверил doc), поэтому выходные данные date могут быть получены до последней строки вывода sed. В простой оболочке posix вы можете использовать немного более сложную конструкцию
((make && date >&3) | sed s/a/A/) 3>&1
Дата может снова запуститься до того, как sed обработает все, поэтому ее вывод может снова прийти до последней строки вывода sed.
Если вы хотите, чтобы дата запускалась только после того, как sed обработал все, ваш единственный шанс - сохранить где-нибудь статус make. Что-то вроде:
(make && touch make-succeeded) | sed s/a/A/
rm make-succeeded 2>/dev/null && date
злоупотребляя тем фактом, что если файл не существует, rm (без -f) выйдет с ненулевым состоянием и отключит сообщение об ошибке с перенаправлением. Как уже упоминал Фредрик, в bash действительно есть место, где он сохраняет статус выхода, поэтому в bash вы можете:
make | sed s/a/A/
[ 0 -eq $PIPESTATUS[0] ] && date