Alguns comentários apenas para mostrar por que eu usaria o grep mais tarde:
$ cat config.txt
/* blah blah yadda yadda */
/* look at me... I'm a text file, not a bash script... don't source me directly */
#MYURL='www.google.com'
MYURL='www.stackexchange.com'
$ cat template.txt
#url = example
url = MYURL
E o script:
$ source <(grep -E "^[0-9A-Za-z]+=" config.txt)
$ echo $MYURL
www.stackexchange.com
$ sed -r -e "s/^url[ ]*=.*/url=${MYURL}/" template.txt
#url = example
url=www.stackexchange.com
(por acaso não tenho ideia de qual foi a intenção do seu script sed ... o meu tem uma abordagem totalmente diferente e suporta tanto com ou sem espaços em branco no modelo url = ... e url = ..., mas você não pode ter espaço em branco em config.txt ou você não pode fonte-lo ... sem adicionar sed novamente ao meu grep)
edit: oh, eu acho que o que você queria era substituir por valor fictício ao invés de chave, que se você preferir é simplesmente:
$ sed -r -e "s/MYURL/${MYURL}/" template.txt
#url = example
url = www.stackexchange.com