Need help to escape special characters in Korn shell script


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Need help to escape special characters in Korn shell script
# 1  
Old 12-28-2007
Need help to escape special characters in Korn shell script

Hi,

I would like to display the following message from my shell (Korn) script

Copy "old_file.txt" to "new_file.txt"

My code looks as follows

print "Copy "old_file.txt" to "new_file.txt""

However, when I execute the script, I get the following output

Copy old_file.txt to new_file.txt

Can somebody please help me with the syntax to escape the double quotes (") ?

Thanks in advance.

rogers42
# 2  
Old 12-28-2007
Code:
$ print "Copy \"old_file.txt\" to \"new_file.txt\""
Copy "old_file.txt" to "new_file.txt"
$

# 3  
Old 12-29-2007
You could have also gone with ...
Code:
[mddev:/home/cameron]
$ print 'Copy "old_file.txt" to "new_file.txt"'
Copy "old_file.txt" to "new_file.txt"

# 4  
Old 12-29-2007
Thanks for the tips folks. Much appreciated.

rogers42
# 5  
Old 04-29-2008
Hi,

I also need some quoting help. I tracked my problem down in a simple example.
I have a grep that is working if typed at the shell prompt (it is important for me to have a space in the character class):
Code:
grep -E '[a-zA-Z ]{30}:' myFile

But included in a script file (lets say file 'runMe') like the following:
Code:
#!/bin/ksh
typeset pattern='[a-zA-Z ]{30}:'
echo "Command to be executed: grep -E $pattern myFile"
grep -E $pattern myFile

Executing the file 'runMe', I get the following error:
grep: RE error in '[a-zA-Z [ ] imbalance or syntax error

I googled/searched here for the error and for quoting or inserting something else which recognizes a space character, but with no success yet.
Also I tried various quotings in runMe, like "'[a-zA-Z ]{30}:'" or "\"[a-zA-Z ]{30}:\"" or quoting the space character like "[a-zA-Z ]{30}:" but all lead to the same error message. Seems like it is breaking at the space?

Curious for me:
If I execute the script and copy the line which is printed by the 'echo' statement and paste this line at the command prompt, that works! It just doesn't work within the script...

Maybe this not the adequate topic, because its more a grep issue than a quoting issue. If so, please be patient with me Smilie

FYI:
I'm relatively new to unix.
In 'myFile', I want to (simplified for this issue) match lines, that have the first 30 characters being (a letter or a space), followed by a colon.
I've aliased grep to /usr/xpg4/bin/grep (and also tried /usr/xpg4/bin/grep manually without alias).

thanks in advance for any hints, Thinkpositiv

Last edited by Thinkpositiv; 04-29-2008 at 11:32 AM..
# 6  
Old 05-02-2008
Well, I got it myself. I missed the double quotes when using the variable (not a declaration time of the variable)!

Code:
#!/bin/ksh
typeset pattern="[a-zA-Z ]{30}:"
echo "Command to be executed: grep -E $pattern myFile"
grep -E "$pattern" myFile

Hope this helps someone Smilie
# 7  
Old 05-14-2009
Hi,

I'm back with a similar issue Smilie
Basically I'm grep'ing a file for a pattern. The pattern contains " (double quotes) and a space. So I escaped the quotes. But how do I use this variable in the grep call?
Code:
typeset searchString="path=\"asdf\" mode=\"jkl\""
typeset found=`grep "$searchString" $cs_rte_configtransform` #(a)
typeset found=`grep '$searchString' $cs_rte_configtransform` #(b)

Neither (a) nor (b) works. From my understanding I'd have to use (a), but searchString should contain path=\"asdf\", so I need to declare it like this?
Code:
typeset searchString="path=\\\"asdf\\\" mode=\\\"jkl\\\""

Still no results, the variable found is always empty, although the searchString manually pasted into the grep call works.

Has anyone an idea/hint for me?
Thanks, regards, Thinkpositiv
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to escape all special characters?

I have an application which I am integrating with that accepts the password via a CLI. I am running in to issues with passwords that contain special characters. I tried to escape them all, but I ran in to an issue where I cannot escape the characters ' ] My attempt is as follows: $... (2 Replies)
Discussion started by: AMG1978
2 Replies

2. Shell Programming and Scripting

Auto escape script to escape special chars in script args

This is a bit off the wall, but I often need to run scripts where there are argument values that contain special characters. For example, $ ./process.exe -t M -N -o temp.mol.s -i ../molfiles/N,N\',N\'\'-trimethylbis\(hexamethylene\)triamine.mol && sfile_space_to_tab.sh temp.mol.s temp.s It... (1 Reply)
Discussion started by: LMHmedchem
1 Replies

3. Shell Programming and Scripting

How to escape Special Characters in Expect programming?

Hi, I have written a unix expect utility "ssh-login.exp" which connects (ssh) to remote host and execute some shell script. I am calling this "ssh-login.exp" utility from another shell script. "ssh-login.exp" takes username, password, host and shell script path to execute on remote host. All... (1 Reply)
Discussion started by: Mahesh Desai
1 Replies

4. Shell Programming and Scripting

Escape special characters in SED

Need help in escaping special characters in sed command. Here is the the string which i am trying to find a replace with From :- REQUEST_TYPE=PIXEL&MSG_ID={//MESSAGE_ID} To :- REQUEST_TYPE=PIXEL&MSG_ID= X_EDELIVERY_MESSAGE_ID & BATCH_ID= X_EDELIVERY_BATCH_ID Here is the sed command i am... (2 Replies)
Discussion started by: aakishore
2 Replies

5. Shell Programming and Scripting

Need help with sed to escape special characters

Hello Everyone, I need to read an encrypted password from the user and update that value in an xml file. I am trying to use "sed" for searching the appropriate tag and replacing this new value that get from the user. Since the encrypted password can contain special characters(like /,\,&,etc),... (4 Replies)
Discussion started by: majose
4 Replies

6. Shell Programming and Scripting

Replace special characters with Escape characters?

i need to replace the any special characters with escape characters like below. test!=123-> test\!\=123 !@#$%^&*()-= to be replaced by \!\@\#\$\%\^\&\*\(\)\-\= (8 Replies)
Discussion started by: laknar
8 Replies

7. Shell Programming and Scripting

Korn shell to insert cyrillic characters into the databse

i have written a shell script that reads a csv file and inserts tokenized strings into the database. the problem comes when the csv file has cyrillic characters. how do i set the parameters in my shell script(korn shell) so that any characters can be inserted into the database. (3 Replies)
Discussion started by: vkca
3 Replies

8. Shell Programming and Scripting

Replace new line with <br /> & escape special characters

Hi, I wish to replace a new line with br (html) but it doesn't seem to work message=$(echo ${FORM_message} | tr '\r' '<br \/>' ) what it gives me seems to be ... b...? I am also having problem escaping hash sign in cut command: list=$(echo "$line" | cut -d'\#;\#' -f1) ; my intention is... (2 Replies)
Discussion started by: ted_chou12
2 Replies

9. Shell Programming and Scripting

awk print $1 escape all special characters

I'm using awk '{print $1}' and it works most of the time to print the contents of a mysql query loop, but occationally I get a field with some special character in it, is there a way to tell awk to ignore all special characters between my FS? I have >186K records, so building a list of ALL special... (6 Replies)
Discussion started by: unclecameron
6 Replies

10. Shell Programming and Scripting

Can't stop shell interpreting special characters

I am struggling with the following sample code: array1=(a b c d) array2=(* * * *) print ${array1} print ${array2} It returns 'c' and the name of a file in the directory I'm in. I can't for the life of me work out how to prevent the shell interpreting the '*' and just get it to return... (2 Replies)
Discussion started by: Doug97
2 Replies
Login or Register to Ask a Question