A razão pela qual cada linha de cada arquivo foi listada foi devido à substituição de variáveis do seu shell.
Quando você liga
grep -ir "$featuredicon" *
bash
avaliará isso. Ele procurará a variável $featuredicon
e a colocará em seu comando. Adivinhe qual é o $featuredicon
mais provável?
Certo, nada. Então o que você está realmente fazendo é:
grep -ir "" *
E isso corresponde a todas as linhas de todos os arquivos.
Resposta antiga
O cifrão ( $
) é um marcador para end-of-line
na expressão regular (suponho que o mesmo seja verdadeiro para o grep).
Se você quiser procurar por um cifrão, use '\$'
.
Certifique-se de verificar a pergunta do StackOverflow: Como grep para o símbolo do dólar ($)?