GNU/Linux >> Linux Esercitazione >  >> Linux

Come usare sed per sostituire la variabile di un file di configurazione?

Puoi provare questo sed:

sed -i.bak 's/^\(VAR5=\).*/\1VALUE10/' file

Dà:

VAR1=VALUE1
VAR2=VALUE2
VAR3=VALUE3
VAR4=VALUE4
VAR5=VALUE10
VAR6=VALUE6

Anche se la risposta è stata aggiunta alla domanda. Ho passato un po' di tempo su come funziona, vorrei aggiungere alcuni fatti e la mia versione della risposta,

sed -i 's,^\(THISISMYVARIABLE[ ]*=\).*,\1'THISISMYVALUE',g' config.cfg

Spiegazione:

  • Come base di sed 's/find_this/replace_with/' , stiamo dicendo sed per cercare e sostituire. Ricorda inoltre che ci sono molti altri delimitatori che possiamo usare al posto di / . Qui , viene utilizzato.
  • Qui troviamo la riga che corrisponde a ^\(THISISMYVARIABLE[ ]*=\).* . Ciò significa che stiamo raggruppando la corrispondenza THISISMYVARIABLE[ ]*= . ([ ]* da coprire se ci sono degli spazi dopo la chiave)
  • In sostituzione della sezione \1 è un riferimento all'indietro. Stiamo facendo riferimento al primo gruppo nell'espressione regolare che abbiamo utilizzato per match.

Puoi dire:

sed '/^VAR5=/s/=.*/=VALUE10/' filename

Per apportare la modifica al file sul posto , usa il -i opzione:

sed -i '/^VAR5=/s/=.*/=VALUE10/' filename

Linux
  1. Come sostituire una stringa in un file?

  2. Come utilizzare Sed per sostituire una stringa multilinea?

  3. Come usare sed per rimuovere le ultime n righe di un file

  4. sed:come sostituire la riga se trovata o aggiungere alla fine del file se non trovata?

  5. Come sostituire in modo ricorsivo i caratteri con sed?

COME USARE SED EDITOR

I 20 migliori comandi sed da usare

Come usare il comando lsof in Linux

Come usare gzip in Linux?

Come utilizzare il comando shred Linux

Come utilizzare Sed per trovare e sostituire una stringa in un file