How To Replace A String In File With A String Containing Windows File Path


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How To Replace A String In File With A String Containing Windows File Path
# 1  
Old 02-15-2009
How To Replace A String In File With A String Containing Windows File Path

Hi,

I have a file with the following contents

# Lines that start with a # are comments.
#
# Calling TOAD like this will perform a comparison from command line :
#
# "C:\Program Files\Quest Software\Toad for Oracle 9.6\toad.exe" -c "SPE/<7,0,0,3,93,182,138,123,109,122,232,120,215,188,75,211,220,108,95,91>@MYDB" COMP
="D:\TOAD611\TEMPLATE.txt"
#
# Obviously, your path to TOAD may differ, along with your connect info.
# The file name after "COMP=" is the name of this file.
#
# Uncomment and edit the following line to load a saved object set
# from a text file.
# LoadObjectSet('c:\MyObjectSet.txt')
#
# To disable the Team Coding login prompt:
# Add "TC=NO" (without the quotes) in the command line string.

As Highlighted above i would like to replace D:\TOAD611\ path to I:\ToadControlFiles\${ENV}\${SID}\

The value of $ENV= TEST and $SID=mydb. These are basically being captured as arguments when we invoke the shell script.

I have tried the the below methods

### USING AWK###########

export SID=$1
export ENV=$2
eval `export STRING="I:\\ToadControlFiles\\${ENV}\\${SID}\\"`
echo ${STRING}

nawk -v m=${STRING} '{gsub(/D\:\\TOAD611\\/, m, $0); print }' TEMPLATE.TXT

### USING SED###########

export SID=$1
export ENV=$2
eval `export STRING="I:\\ToadControlFiles\\${ENV}\\${SID}\\"`
echo ${STRING}


sed 's/D\:\\TOAD611\\/'${STRING}'/g' TEMPLATE.TXT

### USING PERL###########

export SID=$1
export ENV=$2
eval `export STRING="I:\\ToadControlFiles\\${ENV}\\${SID}\\"`
echo ${STRING}


perl -pi -e 's/D:\\TOAD611\\/$STRING/g' TEMPLATE

In all the above attempts its failing to retain the "\" of the windows path its replaces with something like this I:ToadControlFilesTESTmydb

As solutions please... Basically i need a method that will replace one windows path with another constructed windows path. Since the windows path has "\" characters it gets lost when the final string replacement is done.

Thanks and Kind Regards,
Rajan.S
# 2  
Old 02-15-2009
It looks like you're not escaping enough:
Code:
s/D/D\:\\/

would print: D:\

The 'correct' number of escapes would then be:
Code:
s/D/D\:\\\\/

# 3  
Old 02-15-2009
MySQL

Hi,

Yes you were right the below pretty much handles to what i exactly want

sed 's/D\:\\TOAD611\\/'I\:\\\\ToadControlFiles\\\\${ENV}\\\\${SID}\\\\'/g'

Thanks and kind regards,
Rajan
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Search partial string in a file and replace the string - UNIX

I have the below string which i need to compare with a file and replace this string in the file which matches closely. Can anyone help me on this. string(Scenario 1)- user::r--,user::ourfrd:r-- String(Scenario 2)- user::r-- File **** # file: /local/Desktop/myfile # owner: me # group:... (6 Replies)
Discussion started by: sarathy_a35
6 Replies

2. Shell Programming and Scripting

Replace string of a file with a string of another file for matches using grep,sed,awk

I have a file comp.pkglist which mention package version and release . In 'version change' and 'release change' line there are two versions 'old' and 'new' Version Change: --> Release Change: --> cat comp.pkglist Package list: nss-util-devel-3.28.4-1.el6_9.x86_64 Version Change: 3.28.4 -->... (1 Reply)
Discussion started by: Paras Pandey
1 Replies

3. Shell Programming and Scripting

Replace string in XML file with awk/sed with string from another

Sorry for the long/weird title but I'm stuck on a problem I have. I have this XML file: </member> <member> <name>TransactionID</name> <value><string>123456789123456</string></value> </member> <member> <name>Number</name> ... (9 Replies)
Discussion started by: cozzin
9 Replies

4. UNIX for Dummies Questions & Answers

Search for a string,delete the line and replace with new string in a file

Hi Everyone, I have a requirement in ksh where i have a set of files in a directory. I need to search each and every file if a particular string is present in the file, delete that line and replace that line with another string expression in the same file. I am very new to unix. Kindly help... (10 Replies)
Discussion started by: Pradhikshan
10 Replies

5. Shell Programming and Scripting

How to read file, and replace certain string with another string?

Hi all, the value in the following file is just an example. It could be a different value/network addresses. Here is my example of initial output in a file name net.txt Initial Output, net.txt The goal is to produce the following format which is to convert from CIDR to Netmask... (6 Replies)
Discussion started by: type8code0
6 Replies

6. Shell Programming and Scripting

replace (sed?) a string in file with multiple lines (string) from variable

Can someone tell me how I can do this? e.g: a=$(echo -e wert trewt ertert ertert ertert erttert erterte rterter tertertert ert) How do i replace the STRING with $a? I try this: sed -i 's/STRING/'"$a"'/g' filename.ext but this don' t work (2 Replies)
Discussion started by: jforce
2 Replies

7. UNIX for Dummies Questions & Answers

Search a string in the file and then replace another string after that position

Hi I am looking for a particular string in a file.If the string exists, then I want to replace another string with some other text.Once replaced, search for the same text after that character position in the file. :wall: E.g: Actual File content: Hello Name: Nitin Raj Welcome to Unix... (4 Replies)
Discussion started by: dashing201
4 Replies

8. Shell Programming and Scripting

replace (sed?) a single line/string in file with multiple lines (string) from another file??

Can someone tell me how I can do this? e.g: Say file1.txt contains: today is monday the 22 of NOVEMBER 2010 and file2.txt contains: the 11th month of How do i replace the word NOVEMBER with (5 Replies)
Discussion started by: tuathan
5 Replies

9. Shell Programming and Scripting

Find and replace string from file which contains variable and path - SH

e.g. /home/$USER/.config replace it with "" (empty) Is this possible? I think you should play a bit with sharps ## and sed:b: (2 Replies)
Discussion started by: hakermania
2 Replies

10. Shell Programming and Scripting

Using sed to replace a string in file with a string in a variable that contains spaces

Hi, i call my shell like: my_shell "my project name" my script: #!/bin/bash -vx projectname=$1 sed s/'PROJECT_NAME ='/'PROJECT_NAME = '$projectname/ <test_config_doxy >temp cp temp test_config_doxy the following error occurres: sed s/'PROJECT_NAME ... (2 Replies)
Discussion started by: vivelafete
2 Replies
Login or Register to Ask a Question

Featured Tech Videos