Você estava perto, só precisa remover * , o que significa zero ou mais correspondência do token anterior, . neste caso. Como resultado, o demn_ também está sendo mostrado no resultado, pois correspondeu à condição de zero . .
Então você pode fazer:
grep 'denm\.' file.txt
Similarmente, em sed :
sed -n '/denm\./p' file.txt
Observe que você perdeu a opção -n de sed , sem que sed imprima todas as linhas também.
Existem também muitos níveis de precisão que podem ser adicionados para obter exatamente o que você deseja em casos complexos, mas tome isso como um começo.
Exemplo:
% grep 'denm\.' file.txt
denm.xyz
denm.abc
denm.def
% sed -n '/denm\./p' file.txt
denm.xyz
denm.abc
denm.def