Avec un seul fichier d'entrée contenant uniquement des commentaires (à partir de #) et des lignes de valeur VARIABLE =, est-il possible de remplacer une valeur pour une seule variable si elle est trouvée et, sinon, d'ajouter la paire à la fin du fichier si elle n'est pas trouvée?
Ma méthode actuelle fonctionne en la supprimant lors d'un premier passage, puis en l'ajoutant à la fin du fichier lors d'un second passage, mais cette méthode perturbe l'ordre des lignes (et comporte également deux commandes différentes):
sed -r "/^FOOBAR=.*$/d" -i samefile &&
sed -r "$ a\FOOBAR=newvalue" -i samefile
Est-il possible de le faire, c.-à-d. garder l'ordre de la ligne, dans une seule ligne sed? Si un autre utilitaire (awk, ...) le fait, je le prendrais en charge.
newvalue
est stocké dans une variable?