Avec un seul fichier d'entrée qui ne contient que des commentaires (commençant par #) et des lignes VARIABLE=valeur, est-il possible de remplacer une valeur pour une seule variable si elle est trouvée et, dans le cas contraire, d'ajouter la paire à la fin du fichier si elle n'est pas trouvée ?
Ma méthode actuelle consiste à l'effacer dans un premier temps, puis à l'ajouter à la fin du fichier dans un second temps, mais cette méthode perturbe l'ordre des lignes (et il s'agit également de deux commandes différentes) :
sed -r "/^FOOBAR=.*$/d" -i samefile &&
sed -r "$ a\FOOBAR=newvalue" -i samefile
Existe-t-il un moyen de faire cela, c'est-à-dire de conserver l'ordre des lignes, en une seule ligne sed ? Si un autre utilitaire (awk, ...) fait cela, je le préférerais à sed.