Tente:
grep -oE '\$\w+' */templates/*.php | sort -u
Notas:
-
A opção
-o
informagrep
para 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 -u
classifica e remove as duplicatas para que cada nome de variável apareça na saída apenas uma vez. -
A construção
\w
que você estava usando requer regex estendida. Portanto, a opção-E
foi adicionada. -
O uso de
\b
para limites de palavras é problemático aqui porque$
não é um caractere de "palavra" válido e, portanto, não inicia uma palavra como\b
o entenderia. Portanto,\b
corresponderia apenas se uma palavra acabasse logo antes do$
, como ema$b
, mas não dea $b
.\b
foi removido do código acima.