10-13-2008
String substitution
Hi,
I have a properties file (myprop.properties) which contains some values:
@oneValue@==tcp://localhost:1234
@twoValue@==tcp://localhost:4563
@threeValue@==tcp://localhost7895
I have a xml file (myXmlFile.xml)which contains some tokens:
<application name="aTest">
<NameValuePair>
<name>firstName</name>
<value>@oneValue@</value>
</NameValuePair>
<NameValuePair>
<name>secondName</name>
<value>@twoValue@</value>
</NameValuePair>
</application>
I want to replace the tokens in the file myXmlFile.xml by the values of the myprop.properties. I did a script but I cannot manage to match the tokens with awk, I always get the string "nothing" any ideas?
#!/bin/ksh
exec 0< myXmlFile.xml
while read line
do
count=0
for token_per_line in $(cat myprop.properties)
do
first_char=`echo ${token_per_line} | cut -c1`
if [ "$first_char" != "#" ] && [ $count -lt 1 ]; then
token_variables=`echo "$token_per_line" | grep -v '#'| awk -F'==' '{print $1}'`
token_values=`echo "$token_per_line" | awk -F'==' '{print $2}'`
echo $line | awk -v token_var="$token_variables" token_val="$token_values" '{
{
if ($0 ~ /token_var/) {
print "matching"
gsub($token_variables, $token_values, $line);
print $0
}
else {
print "nothing"
}
}
}'
count=$count+1
fi
done
done
exec 0<&3
Regards
John
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
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
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
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
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
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
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
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
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
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
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.h(3HEAD) Headers tcp.h(3HEAD)
NAME
tcp.h, tcp - definitions for the Internet Transmission Control Protocol (TCP)
SYNOPSIS
#include <netinet/tcp.h>
DESCRIPTION
The <netinet/tcp.h> header defines the following macro for use as a socket option at the IPPROTO_TCP level:
TCP_NODELAY Avoid coalescing of small segments.
The macro is defined in the header. The implementation need not allow the value of the option to be set with setsockopt() or retrieved with
getsockopt().
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Interface Stability |Standard |
+-----------------------------+-----------------------------+
SEE ALSO
getsockopt(3XNET), socket.h(3HEAD), attributes(5), standards(5)
SunOS 5.10 10 Sep 2004 tcp.h(3HEAD)