Con un singolo file di input che contiene solo commenti (che iniziano con #) e VARIABLE = righe di valore, è possibile sostituire un valore per una singola variabile se trovato e, in caso contrario, aggiungere la coppia alla fine del file se non trovato?
Il mio metodo attuale funziona eliminandolo in un primo passaggio, quindi aggiungendolo alla fine del file in un secondo passaggio, ma questo metodo incasina l'ordinamento di linea (ed è anche due comandi diversi):
sed -r "/^FOOBAR=.*$/d" -i samefile &&
sed -r "$ a\FOOBAR=newvalue" -i samefile
Esiste un modo per farlo, ad es. mantenendo l'ordine delle righe, in un'unica riga sed? Se qualche altra utility (awk, ...) fa questo, lo prenderei su sed.
newvalue
fosse memorizzato in una variabile?