.*
означает any character, reapeated any amount of time
.По этой логике #
попадает в эту категорию и будет захвачено.
Чтобы избежать этого, самым простым способом является использование отрицательного символьного класса, то есть запись any character that isn't in a set of specific chracters
Синтаксисis [^<any character you don't want>]
Вы можете написать:
sed -i "s/PARAMETER = [^#]*/PARAMETER = 20 /" FILE