sed 's/$HOSTNAME/myhost/g;s/$unconfigured//g' yourfile.txt > another_file.txt
 aktualizace:
Na základě aktualizací ve vaší otázce to nebude dobré řešení.
aktualizace2:
To je založeno na odpovědi na související otázku. Naboural jsem se do toho (neznám perl), abych odstranil nedefinované proměnné.
perl -p -e 's/\$\{([^}]+)\}/defined $ENV{$1} ? $ENV{$1} : $&/eg; s/\$\{([^}]+)\}//eg' yourfile.txt
 
 Mělo by to fungovat pro jakýkoli vstupní textový soubor, ale budete muset definovat proměnné pomocí ${...} formát, který zjednodušuje porovnávání řetězců. 
(Řád ohledně zla eval přesunut do samostatného příspěvku, aby nedošlo ke zmatení čtenářů )
 To je to, co envsubst je pro.
echo 'Hello $USER'
Hello $USER
echo 'Hello $USER' | envsubst
Hello malvineous
 Pravděpodobně byste to však použili spíše takto:
envsubst < input.txt > output.txt
 
 envsubst Zdá se, že je součástí GNU gettext.