Usando sed :
sed 's/^\(ServerName\)$/ www.mydomain.com/' file.txt
O grupo capturado, \(ServerName\) é usado no padrão de substituição como .
Editando o arquivo no lugar, com backup, assumindo o GNU, ssed , busybox ou algumas implementações do BSD de sed :
sed -i.bak 's/^\(ServerName\)$/ www.mydomain.com/' file.txt
O arquivo original será mantido como file.bak e o arquivo modificado será file.txt.bak .
Edição no local, sem backup (GNU, ssed ou busybox apenas):
sed -i 's/^\(ServerName\)$/ www.mydomain.com/' file.txt
(para BSDs, use sed -i '' 's/... ).
Ainda mais curto, sem nenhum grupo capturado:
sed -i 's/^ServerName$/& www.mydomain.com/' file.txt
Aqui & será substituído pela correspondência.