Mi consenta di stropicciarmi gli occhi e le orecchie per la domanda...
Per greppare in AND basta fare due pipe di fila, tipo:
# cat nomefile | grep pippo | grep pluto
Per greppare in OR, occorrono le regular expression quindi la cosa si complica un tot:
# cat nomefile | egrep "pippo|pluto"
Se poi volete greppare qualcosa che contiene A e B ma non C:
# cat nomefile | grep A | grep B | grep -v C