Se stdout não for um tty (ou seja, um arquivo regular ou um pipe) e se nenhuma opção --quiet tiver sido especificada, apt-cache age como se você tivesse passado --quiet=1 . Uma solução alternativa é passar uma opção --quiet=0 .
$ apt-cache --quiet=0 policy foo 2>&1 | grep .
N: Unable to locate package foo