Changing contents of a file through shell script

bash, linux, shell

Solution

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.

Problem

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?

Original source