Причина, по которой каждая строка каждого файла была указана в списке, была вызвана подстановкой переменной вашей оболочки.
Когда вы звоните
grep -ir "$featuredicon" *
bash
оценит это. Он найдет переменную $featuredicon
и поместит ее в вашу команду. Угадайте, что, скорее всего, $featuredicon
?
Хорошо, ничего. Итак, что вы на самом деле делаете:
grep -ir "" *
И это соответствует каждой строке каждого файла.
Старый ответ
Знак доллара ($
) является заполнителем для end-of-line
в регулярном выражении (я предполагаю, что то же самое верно для grep).
Если вы хотите найти знак доллара, используйте '\$'
.
Не забудьте проверить вопрос StackOverflow: как получить символ доллара ($)?