Problem with using a sed to add escape character \ before $ and ' symbols


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Problem with using a sed to add escape character \ before $ and ' symbols
# 1  
Old 03-02-2011
Problem with using a sed to add escape character \ before $ and ' symbols

Hi all,
I've got a problem with sed. Want to use it to add escape character \ before $ and ' symbols so

condition='1'$some will become condition=\'1\'\$some

Code:
echo "condition='1'$some" | sed 's/\($\)/\\\1/g'

is not working properly. Can somebody help me with this please?

Regards, Johny


Moderator's Comments:
Mod Comment Please use [code] and [/code] tags when posting code, data or logs etc. to preserve formatting and enhance readability, thanks.

Last edited by zaxxon; 03-02-2011 at 05:00 AM.. Reason: code tags
# 2  
Old 03-02-2011
Code:
$> cat infile
condition='1'$some
$> sed "s/['\$]/\\\&/g" infile
condition=\'1\'\$some

# 3  
Old 03-02-2011
Quote:
Originally Posted by zaxxon
Code:
$> cat infile
condition='1'$some
$> sed "s/['\$]/\\\&/g" infile
condition=\'1\'\$some

Thanks, much better but one problem: it cuts the end of string:

Code:
echo "cond='1'$some" | sed "s/['\$]/\\\&/g"

result
cond=\'1\'
# 4  
Old 03-02-2011
Quote:
Originally Posted by johny_be_good
Thanks, much better but one problem: it cuts the end of string:

Code:
echo "cond='1'$some" | sed "s/['\$]/\\\&/g"

result
cond=\'1\'
Its because the variable $some gets expanded. Escape the $ in the echo statement and try.
# 5  
Old 03-02-2011
I think that the problem comes from the echo statement.
The string to display is between ", the shell expands the variable $some which may be not defined.
# 6  
Old 03-02-2011
not actual

Last edited by johny_be_good; 03-04-2011 at 10:09 AM..
# 7  
Old 03-02-2011
What is the argument you pass to the script above..?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl/sed Escape Syntax Problem . . .

Greetings! I've run into this before; and am having a spot of trouble trying to figure out the way that Perl would prefer the following example syntax to be formed:#!/usr/bin/perl use strict; use warnings; use diagnostics; `sed -i 's/Hi Mom!\|Hi Dad!/Bye Everyone!/I' ./test.txt`;Perl... (5 Replies)
Discussion started by: LinQ
5 Replies

2. Shell Programming and Scripting

Function to add escape character before specified character

Hi , I am looking for a function which will do the following. 1. I have a variable which will hold few special chracter like SPECIAL_CHARS="& ;"2. I have an escape character. ESCAPE_CHAR="\"3. Now when I passed some string in the function it will return the same string but now it will... (8 Replies)
Discussion started by: Anupam_Halder
8 Replies

3. Shell Programming and Scripting

sed - with escape character

i have string as below str=".<date>" in which i need to replace < with /< , when i tried with sed , got the output. --> echo $str | sed 's/</\\</g' .\<date> when i tried to assign it to a variable , i am not getting the same --> a=`echo $str | sed 's/</\\</g'` ; echo $a... (4 Replies)
Discussion started by: expert
4 Replies

4. Shell Programming and Scripting

sed escape character for comment string "/*"

Good afternoon all, I'm hoping my newbie question can help bolster someone's street_cred.sh today. I'm trying to "fingerprint" SQL on its way into the rdbms for a benchmarking process (so I can tie the resource allocation back to the process more precisely). To do this, I'm essentially... (4 Replies)
Discussion started by: toeharp
4 Replies

5. Shell Programming and Scripting

Escape character in sed

Hello experts I am trying to write a shell script which will add ' ' to a unix variable and then pass it to oracle for inserting to a table. I am running the script as root and I have to do a su -c . The problem is the character ' is not recognised inside sed even after adding escape... (1 Reply)
Discussion started by: pvedaa
1 Replies

6. Shell Programming and Scripting

SED: Replacing $1 with $2 escape problem

Hi all, I have a script which uses sed to replace one string with another. The problem is, the string to be matched, and its replacement are coming in as two command line arguments $1 and $2 $1 and $2 can be absolutely anything, but both should be treated purely as strings. My sed command... (7 Replies)
Discussion started by: mark007
7 Replies

7. Shell Programming and Scripting

Escape character - sed

Hi All, How do i write in sed for the 6th and 7th field of etc/passwd file as it involves "/" character? Does mine below is correct? It's incomplete script as i need help with syntax as i always getting may errors :( Example of etc/passwd file: blah:x:1055:600:blah... (6 Replies)
Discussion started by: c00kie88
6 Replies

8. Shell Programming and Scripting

Escape character

Hi , I want to change space to ' in my script. I tried doing this, sed 's/ /\'/g' filename but i could not get it. can some one help me please. Thanks, Deepak (4 Replies)
Discussion started by: deepakpv
4 Replies

9. Shell Programming and Scripting

Escape character in vi?

I want to replace a string which contains "/" in vi but what is the escape character for forward slash? e.g. I have a text file with the contents below and I want to replace "/Top/Sub/Sub1" with "ABC". /Top/Sub/Sub1 The replace command I am using is ... (4 Replies)
Discussion started by: stevefox
4 Replies

10. UNIX for Dummies Questions & Answers

possible to escape the \ character in sed?

is it possible to escape the \ character in sed? right now I'm trying to replace all occurances of \ with \\ sed \"s|test|test_replacement|g\" file1 > output; #this works fine sed \"s|\\|\\\|g\" file1 > output; #this generates the following error: sed: -e expression #1, char 17:... (1 Reply)
Discussion started by: gammaman
1 Replies
Login or Register to Ask a Question