\.* означает «любое количество вхождений символа .», включая ноль. Поскольку ваши подчеркнутые имена файлов начинаются с denm, за которым следуют нулевые вхождения символа ., они сопоставляются. grep "denm\." file будет работать.
Если вам нужны строки, в которых есть ., они используют grep с фиксированными строками вместо регулярных выражений:
grep -F . file
Из man grep:
-F, --fixed-strings
Interpret PATTERN as a list of fixed strings, separated by
newlines, any of which is to be matched. (-F is specified by
POSIX.)
С фиксированными строками все специальные символы специального выражения теряют смысл.
sed не имеет соответствующей опции.
Я склонен использовать скобки вместо обратных косых черт для ускорения:
egrep "denm[.].*" file
sed -r 's/denm[.]/.../'
Это спасает меня от мысли, что и как я должен избегать обратных косых черт. (Здесь конечный .* избыточен.)