I'm building a bash script for my virtual machine and I would like to know how to replace a specific line in this document:
[base]
## uncomment and set autologin username to enable autologin
# autologin=dgod
## uncomment and set timeout to enable timeout autologin,
## the value should >=5
# timeout=10
## default session or desktop used when no systemwide config
# session=/usr/bin/startlxde
this line:
# autologin=dgod
I want to change to this
autologin=ubuntu
I have tried with "tee" and "sed" but couldn't make it work. This should be very easy for someone who works with bash scripts more often than me.
It is straightforward. Use the
s
command insed
to search and replace.If you see what you want, add
-i
to change the file in placeI've found the most effective way to do this is actually to use the change syntax to set the exact value you want unless you are explicitly trying to enable a two way toggle. You can use this to change as well as uncomment a line no matter how it is commented, with
#
or//
or<!--
.sed 's%searchTerm=% c searchTerm=desiredValue%' targetFile.txt