grep で and

grep 型検索ってのはひどいなぁ。
まぁ、それはそれとして、GNU grep なら and 検索もなんとかなりますね。

grep -lrZ A . | xargs -0 grep -lZ B | xargs -0 grep -l

パターンを書く部分を統一するならこうか。

find . -type f -print0 | xargs -0 grep -lZ A | xargs -0 grep -lZ B | tr '\0' '\n'