Ho cercato online questa risposta e non riesco a trovarla.Come usare sed per sostituire la variabile di un file di configurazione?
Ho un file di configurazione che contiene:
VAR1=VALUE1
VAR2=VALUE2
VAR3=VALUE3
VAR4=VALUE4
VAR5=VALUE5
VAR6=VALUE6
e voglio cambiare il valore di VAR5 da Value5 a VALUE10. Sfortunatamente, non conosco il valore di VALUE5, quindi non posso cercarlo. Quindi in pratica ho bisogno di usare sed (o qualsiasi altra cosa) per sostituire il valore di VAR5 con qualsiasi valore con cui voglio sostituirlo.
Modifica: Grazie alla soluzione confermata sono stato in grado di utilizzare quanto segue in BASH per modificare il mio file di configurazione passando un argomento allo script di bash. Le barre sono state sostituite da virgole poiché il parametro che sto passando allo script conterrà le barre.
sed -i 's,^\(THISISMYVARIABLE=\).*,\1'THISISMYVALUE',' config.cfg
mio file conteneva:
THISISMYVARIABLE=SOMEOLDVALUE
Dopo aver eseguito il comando sed in bash
THISISMYVARIABLE=THISISMYVALUE
Da dove proviene "VALUE10"? Proviene da un'altra linea in questo stesso file? O è solo un valore arbitrario? – Sildoreth
VAR5 nel mio file di configurazione è USER_INSTALL_DIR e VALUE10 è qualsiasi cosa, potrebbe essere spazzatura. Voglio rendere VAR5 o nel mio caso USER_INSTALL_DIR impostato su una variabile che ho passato tramite uno script bash. Quanto segue ha funzionato per me grazie al commento di anubhava. Ho anche sostituito le barre con le virgole dato che il parametro che il mio script bash prende contengono barre che passano da una directory utente. – SomeGuyOnAComputer