Tente:
grep -oE '\$\w+' */templates/*.php | sort -u
Notas:
-
A opção
-oinformagreppara imprimir apenas as partes correspondentes da linha, não a linha inteira. Isso deve dar a você os nomes de todas as variáveis de$. -
sort -uclassifica e remove as duplicatas para que cada nome de variável apareça na saída apenas uma vez. -
A construção
\wque você estava usando requer regex estendida. Portanto, a opção-Efoi adicionada. -
O uso de
\bpara limites de palavras é problemático aqui porque$não é um caractere de "palavra" válido e, portanto, não inicia uma palavra como\bo entenderia. Portanto,\bcorresponderia apenas se uma palavra acabasse logo antes do$, como ema$b, mas não dea $b.\bfoi removido do código acima.