Sponsored Content
Full Discussion: String substitution
Top Forums Shell Programming and Scripting String substitution Post 302246472 by treesloth on Monday 13th of October 2008 06:34:45 PM
Old 10-13-2008
I hope I've understood what you wanted to do. Here's what I did:

1) Created a file called "values". It contains:

Code:
@oneValue@==tcp\:\/\/localhost\:1234
@twoValue@==tcp\:\/\/localhost\:4563
@threeValue@==tcp\:\/\/localhost\:7895

Note the escaped characters. I'm also assuming that you wanted a : before the 7895 on the last line.

2) Created a file called "file.xml". It contains:

Code:
<application name="aTest">
<NameValuePair>
<name>firstName</name>
<value>@oneValue@</value>
</NameValuePair>
<NameValuePair>
<name>secondName</name>
<value>@twoValue@</value>
</NameValuePair>
</application>

Third, used this tcsh foreach script:

Code:
foreach value ( `cat values` )
set val = `echo $value | awk -F"==" '{print $2}'`
set grp = `echo $value | awk -F"==" '{print $1}'`
sed -i .bak "s/$grp/$val/" file.xml
end

Now, since this uses sed -i, I strongly recommend backing up your .xml file before running this. I've never had sed -i fail me, but your mileage may vary drastically.

If your file corresponding to my values file is long and tedious to escape like I did above, you can use this to rewrite it:

Code:
cat values | sed -e 's/\//\\\//g' -e 's/:/\\:/g' >> newvalues

Strictly speaking, it's not necessary to cat the file into sed. Oh, well. Also, the -i can be used here as well, but I tend to err on the side of paranoia where sed -i and other file-overwrite ops are concerned. Lemme know if anything's unclear... my writing can be that way sometimes. :-)
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Sed String Substitution

Hi! I've the following script code with an input parameter: sed 's/oldstring/$1/g' myfile > newfile (I launch it with comman line: $ MyShell newstring) Problem: the substituion doesn't work (oldstring becomes $1, instead of newstring). How could I solve this situation? Thanks, ... (2 Replies)
Discussion started by: pciatto
2 Replies

2. Shell Programming and Scripting

String Substitution Question

When I run the script I pass in 2 expressions (ex. replace.ksh new old) I want the script to go line by line for a given file in a given directory and replace the word new with old. Of course in my line where I have the awk statement it is replacing the 2nd word with 1st instead of new with... (3 Replies)
Discussion started by: goodrics
3 Replies

3. Shell Programming and Scripting

Sed - substitution for whole string

Hello I have several files where a string similar to this appears: /home/workload/bin/ProcDly/scrpts/T54.sh > $LOG I need to change it to something like this: $VARIABLE > $LOG However, due to the configuration of the rest of the files, I should only find this string by the... (4 Replies)
Discussion started by: Scarlos
4 Replies

4. UNIX for Advanced & Expert Users

String Substitution

Hey ppl, Could u tell me how to replace such a string xyz->x with XYZ(x), where x can be any variable accessible by pointer to structure, xyz in an entire file? (1 Reply)
Discussion started by: laxmi
1 Replies

5. Shell Programming and Scripting

string substitution

Hey ppl, Could u tell me how to replace such a string xyz->x with XYZ(x), where x can be any variable accessible by pointer to structure, xyz in an entire file? (3 Replies)
Discussion started by: laxmi
3 Replies

6. Shell Programming and Scripting

substitution of string in brackets

Hi friends! I have a tab delimited file with two columns : GB_45_DRB SP:0139466(mrmi sisignm)|SP:3674(fllflg_itoioh)|SP:68954779(RMTKLGF to emmdm-roomto) GB_45_DRD SP:475928(mgmdksi rikgkg)|SP:587959(roykgl tiic-tm)|SP:0139466(mrmi sisignm)|SP:3674(fllflg_itoioh)|SP:68954779(RMTKLGF to... (4 Replies)
Discussion started by: jacks
4 Replies

7. Shell Programming and Scripting

a specific string substitution

hi guys...need some help here... i am making a a script to automatically install netbackup client...so its gonna write a configuration file according to the host name.... the line would be something like this CLIENT_NAME = odel_bkp.test.com the thing is ...the host name in reallity is... (2 Replies)
Discussion started by: razael
2 Replies

8. Shell Programming and Scripting

string substitution in perl

Hi, I have a template file and want to replace 3 parameters to the values that I want. these values are in a parameter file. Any idea how to do this in perl? the parameter file looks like: host_name = jupiter PORT = 1562 IPADDRESS = 10.1.34.10 the template file has lots of entry.... (1 Reply)
Discussion started by: melanie_pfefer
1 Replies

9. Shell Programming and Scripting

Substitution within string command

I have the following code: strfuture=abcdefghi ver=${strfuture:${count}:1} mj7777_ver=${ver} start_mj7777_iteration let count=count+1 When it is executed I get bad substitution. The same if I use ver=${strfuture:$count:1} mj7777_ver=${ver}... (6 Replies)
Discussion started by: Bruble
6 Replies

10. Programming

COBOL: Substitution in string

We have a formatted screen system where a driver program passes the locations of a list of files that called programs may be using. It will look something like this: /{number of characters varies}/DATA/MASTERFILEBecause of the size of some files we will be splitting older records into a history... (2 Replies)
Discussion started by: wbport
2 Replies
tcp-env(1)                                                    General Commands Manual                                                   tcp-env(1)

NAME
tcp-env - set up TCP-related environment variables SYNOPSIS
tcp-env [ -rR ] [ -ttimeout ] program [ arg ... ] DESCRIPTION
The input for tcp-env must be a TCP connection. tcp-env finds out information about that connection, puts the information into several environment variables as described in tcp-environ(5), and runs program with the given arguments. Usually tcp-env is run from inetd. It might instead be run from another server that already sets up the right environment variables; if PROTO is set to TCP when tcp-env is invoked, tcp-env assumes that all the other variables are set up properly, and it does not check whether the input is a TCP connection. OPTIONS
-r (Default.) Attempt to obtain TCPREMOTEINFO from the remote host. -R Do not attempt to obtain TCPREMOTEINFO from the remote host. -ttimeout Give up on the TCPREMOTEINFO connection attempt after timeout seconds. Default: 30. SEE ALSO
tcp-environ(5), inetd(8) tcp-env(1)
All times are GMT -4. The time now is 01:07 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy