Pour substituer les variables d'un fichier par leurs contenu, il y a la commande envsubst:
envsubst < test.cfg > newtest.cfg
Les variables a étendre doivent être au niveau du système, c'est a dire visible par la commande env:
env
Pour cela vous devez les créer par
export var1=toto
ou les definir sur la ligne de commande de envsubst:
var1='myVar1'\ var2=2\ var3=${var1}\ envsubst '$var1,$var3' < "source.txt" > "destination.txt"