SomeGuyOnAComputer SomeGuyOnAComputer - 3 months ago 7
Linux Question

How to use sed to replace a config file's variable?

I've been looking online for this answer and cannot seem to find it.

I have a config file that contains:

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


And I want to change VAR5's value from VALUE5 to VALUE10. Unfortunately, I do not know the value of VALUE5 so I cannot search for it. So basically I need to use sed (or whatever) to replace the value of VAR5 to whatever value I want to replace it with.

Edit: Thanks to the confirmed solution I was able to use the following in BASH to edit my configuration file by passing in an argument to the bash script. The slashes were replaced by commas since the parameter I'm passing to the script will contain slashes.

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


My file contained:

THISISMYVARIABLE=SOMEOLDVALUE


After running the sed command in bash

THISISMYVARIABLE=THISISMYVALUE

Answer

You can try this sed:

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

It gives:

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