user2031888 user2031888 - 3 months ago 20
Bash Question

Changing contents of a file through shell script

I have a requirement where in I need to change the contents of a file say xyz.cfg. the file contains values like:

group address=127.8.8.8
port=7845
Jboss username=xyz_ITR3


I want to change this content when ever needed through a shell script and save the file. Changed content can look like:

group address=127.8.7.7
port=7822
Jboss username=xyz_ITR4


How can i achieve this using shell script by taking user input or otherwise?

Answer

How about something like:

#!/bin/bash

addr=$1
port=$2
user=$3

sed -i -e "s/\(address=\).*/\1$1/" \
-e "s/\(port=\).*/\1$2/" \
-e "s/\(username=\).*/\1$3/" xyz.cfg

Where $1,$2 and $3 are the arguments passed to the script. Save it a file such as script.sh and make sure it executable with chmod +x script.sh then you can run it like:

$ ./script.sh 127.8.7.7 7822 xyz_ITR4

$ cat xyz.cfg
group address=127.8.7.7
port=7822
Jboss username=xyz_ITR4

This gives you the basic structure however you would want to think about validating input ect.