Modifying Variables in Files


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Modifying Variables in Files
# 1  
Old 05-31-2013
Modifying Variables in Files

hi list,

I am currently looking to develop an installation script which writes out .conf files based on existing .conf files according to variables which are set in a settings file.

For example I have a settings file like so:

Code:
ip=192.168.1.1
hosts=local

And I want to read a file which looks like this:
Code:
[test]
ip_address=$ip
hostname=$hosts
othervalue=110
testfield=testvalue

And create an output file so that it looks like this whilst leaving all other fields in the source file intact except for the variables:
Code:
[test]
ip_address=192.168.1.1
hostname=local
othervalue=110
testfield=testvalue

What is the best way to script this?

thanks,
lland
# 2  
Old 05-31-2013
Code:
awk -F'=' 'NR==FNR{A[$1]=$2;next}/\$/{sub(/\$/,x);if(A[$2]) $2=A[$2]}1' OFS='=' file.set file.conf

This User Gave Thanks to Yoda For This Post:
# 3  
Old 06-01-2013
Quote:
Originally Posted by Yoda
Code:
awk -F'=' 'NR==FNR{A[$1]=$2;next}/\$/{sub(/\$/,x);if(A[$2]) $2=A[$2]}1' OFS='=' file.set file.conf

This works perfectly. Smilie

So my last question is. What if I want to remove the '=' from the output so that instead of the output being:

ip_address=192.168.1.1
it reads:
ip_address 192.168.1.1
thanks,
lland
# 4  
Old 06-01-2013
Assuming you want to remove all assignment operator from output:
Code:
awk -F'=' 'NR==FNR{A[$1]=$2;next}/\$/{sub(/\$/,x);if(A[$2]) $2=A[$2]}{sub("=",OFS)}1' file.set file.conf

This User Gave Thanks to Yoda For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

New code for modifying text files in a folder

Hi I want to create a code that can do this for all text files in a folder. The filenames are all listed in the following syntax UNIQUEID-LABID_ - .txt Each file has a unique ID and a different name and the content in the file looks like this: Kinship Analysis Report --- Likelihood... (12 Replies)
Discussion started by: kylle345
12 Replies

2. Shell Programming and Scripting

Help with modifying files

Hello everyone, I have some data files, with mixed header formats. the sample for the same is: >ABCD76567.x1 AGTCGATCGTAGTCGTAGCTGT >ABCD76567.y1 AGTCGATCGTAGTCGTAGCTGT >ABCD76568.x1 pair_info:898989 AGTCGATCGTAGTCGTAGCTGT >ABCD76568.y1 pair_info:893489 AGTCGATCGTAGTCGTAGCTGT... (2 Replies)
Discussion started by: ad23
2 Replies

3. Shell Programming and Scripting

modifying xml files using sed

Hello, I have lots of xml files in the same format and I need to modify a xml tag in these files. i loop over the files and apply sed to the files to make the modification but CPU goes to %100 while doing this. I think I'm doing something wrong. Here is my onliner: for f in $( find . -name... (1 Reply)
Discussion started by: xyzt
1 Replies

4. Shell Programming and Scripting

modifying grep to return latest files

Hi guys, I currently use the below mwntioned grep statemen to get the timestamp of the last generated file in the directory. (ls -ltr eCustomerCME* | grep ^- | tail -1 | awk ' { print $6,$7,$8 } ') I need to modify this grep to search for files generated only within last 2 hrs. Can you pls... (5 Replies)
Discussion started by: ragha81
5 Replies

5. Shell Programming and Scripting

.bashrc files modifying the PS1 variable?

Is there a command for finding all files on the system named ".bashrc" that modify the PS1 variable? I'd like to list the full file name(s) and the protection (including the full path). (5 Replies)
Discussion started by: raidkridley
5 Replies

6. Shell Programming and Scripting

Modifying command for Tar.gz Files.

:) Hi, I use the following command to search for a string in all the files in the directories and sub directories. find . -type f -print | xargs grep bermun@cial.net Can someone please cite a method wherin I can find the entries from a list of 300-500 *.gz files by modifying the above... (2 Replies)
Discussion started by: openspark
2 Replies

7. Shell Programming and Scripting

modifying grep to get files only within last 2 hrs

Hi gurus I am currently using the below mentioned grep to find timestamp of last generated log file. touch -t $time_search dummy ecust_time_stamp=$(find . -name 'eCustomerCME*' -newer dummy -type f -exec ls -ltr {} \; | tail -1 | awk ' { print $6,$7,$8 } ') I calculate... (3 Replies)
Discussion started by: ragha81
3 Replies

8. UNIX for Dummies Questions & Answers

modifying C file and linking back to project files

hi, This is the first time I work in a big C project. All source code files are located in say directory /source/pp and all header files are in /include/pp. I've created a link to both of these directories from my home dir, say /home/ss. So in the /home/ss dir I have the /source/pp and /include/pp... (1 Reply)
Discussion started by: bruins2005
1 Replies

9. Shell Programming and Scripting

Perl - Appending/Modifying Excel files

Hi I have been using Spreadsheet::ParseExcel and Spreadsheet::WriteExcel to read and write excel workbooks, respectively. Spreadsheet::WriteExcel can only be used for creating new excel spreadsheets. I am looking for a module that would/should help me in appending to existing excel files.... (2 Replies)
Discussion started by: srinivay
2 Replies

10. UNIX for Dummies Questions & Answers

How can I ... (Modifying large ASCII files)

Hi Everybody! Situation: I have a large ASCII file (for example: 1-2 Mbytes) without linebreaks (\n). Task: I like inserting linebreaks after all 420 digits (byte). (pattern: *\n*\n*\n...etc.) My problem: How? :-) I like using shell script or (maybe) AWK (short) program. Please,... (2 Replies)
Discussion started by: hviktor
2 Replies
Login or Register to Ask a Question