O GNU grep
tem a capacidade de excluir globs de suas pesquisas recursivas incorporadas. Tente:
grep -iHrn --exclude='*.c' --exclude='*.h' TRACE_WANTED
Isso procura recursivamente a partir do diretório atual, assim como o comando find
. Exclui todos os arquivos *.c
e *.h
.