Visit Our UNIX and Linux User Community


Replace apostrophe with backslash apostrophe


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Replace apostrophe with backslash apostrophe
# 1  
Old 06-08-2011
Replace apostrophe with backslash apostrophe

I'm coding using BASH and have a requirement to replace apostrophes with backslash apostrophes. For example below:
Code:
I am here 'in my room' ok
Would be changed to:
I am here /'in my room/' ok

The original text is coming from a field in a MySql database and is being used by another process that REQUIRES a backslash in front of all apostrophes, thus I am unable to change that process at all.

in BASH I read the value from MySql and place it in a variable:
MyVAL="mysql command and query which only returns one value"
I have been successfully replaced double quotes with back slash double quotes but the apostrophe is a heck of a challenge.
How I do the double quotes is with this:
Code:
xMyVAL=`echo $MyVAL | sed -e 's/\"/\\\"/g'`

I hope this can be done easily with sed.

Last edited by Franklin52; 06-09-2011 at 04:16 AM.. Reason: Please use code tags
# 2  
Old 06-08-2011
Try:
Code:
xMyVAL=`echo $MyVAL | sed "s/'/\\\'/g"`

# 3  
Old 06-08-2011
Thank you for the quick reply. I just tried it and it did not work.
To ensure I did this correctly I even changed it to use this:

Code:
xMyVAL=`echo $MyVAL | sed "s/'/WW\'/g"`

So the original text is this:
Original text:
0904 MM - Int'l - Action required

With the code to ensure it would work (putting the WW in there) the new text looked like this:
0904 MM - IntWW'l - Action required

The WW's got in there but for some reason the back slash doesn't.

Any other suggestions?

Last edited by dbjock; 06-08-2011 at 04:59 PM.. Reason: Putting code tags on
# 4  
Old 06-08-2011
Code:
MyVAL=`echo $MyVAL |sed "s/'/\\\\\'/g"`

# 5  
Old 06-08-2011
That is the winnner! Thank you so much bartus11.
I just don't understand why there has to be some many backslash.
# 6  
Old 06-08-2011
I think shell needs its backslashes because of the use of double quotes for sed code.

Previous Thread | Next Thread
Test Your Knowledge in Computers #705
Difficulty: Medium
Confirmation bias is the tendency to search for, interpret, favor, and recall information in a way that affirms what we currently believe or think we already know.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Find ' (apostrophe) by grep

hi linux expert how can i find apostrophe (') symbol in text file by grep? for example for find 'test, the command grep " \'test" * is not useful. Many Thanks samad (1 Reply)
Discussion started by: abdossamad2003
1 Replies

2. Shell Programming and Scripting

Add backslash and apostrophe to string in variable.

Hi All I want to add backslash and apostrophe to variable in my bash script. I have my variable: USER_LIST=USER1,USER2,USER3 and I want something like this: USER_LIST_DEL=/'USER1/',/'USER2/',/'USER3/' any ideas ?? (1 Reply)
Discussion started by: primo102
1 Replies

3. Shell Programming and Scripting

Remove apostrophe and a letter followed by it

Hi All, For example, I have some words like these: cabinet's school's field's you'll I know how to remove apostrophe from these words using this command: cat filename | tr -s "\'" ' ' But I am not sure how I can remove the letter followed by the apostrophe, so that my output... (3 Replies)
Discussion started by: shoaibjameel123
3 Replies

4. Programming

How to change only one occurance of apostrophe with sed

Hi, I have a document with usual English text and some of the words have apostrophes (e.g. don't, can't, etc.) I would like all these apostrophes to be doubled (e.g. don''t, can''t, etc.), but the problem is, that some of such words have double apostrophe and by using sed -i "s/'/''/g"... (2 Replies)
Discussion started by: neptun79
2 Replies

5. Shell Programming and Scripting

Perl - Title Case after apostrophe

I've got: $string =~ s/(\w+)/\u\L$1/g; Which capitalizes each word in the string. The problem is if I have a string with an apostrophe the first letter after it gets capitalized as well. So Bob's becomes Bob'S. Thanks for any quick fixes! (4 Replies)
Discussion started by: mjmtaiwan
4 Replies

6. Shell Programming and Scripting

script to replace a character with '(Apostrophe)

Hi Friends, I need a sed or awk based script to replace a character(alphabet) with ' (Apostrophe). I tried to use the following two commands 1) sed -e 's/a/'/' filename 2) awk '{sub("a","'",$1);print}' filename but both got failed. Any help on this. Thanks in advance.. (3 Replies)
Discussion started by: ks_reddy
3 Replies

7. UNIX for Dummies Questions & Answers

How to replace special chars like " ' " (Apostrophe)

I'm goin to drive crazy soon, if i can not do this. I have a text file (570kb) and i have to replace the apostrophe " ' " and minus "-" with space " ". i have done it for minus: sed 's/-/ /g' aaa.txt >zzz.txt this replaced minus with space. but i can not use the same command for ' . ... (4 Replies)
Discussion started by: onculo
4 Replies

8. Shell Programming and Scripting

inserting an apostrophe into awk output

hello, I have a simple awk script thus: egrep populateNode logfile.txt | gawk '{print $11}' This gives me a list of usernames. I want to pipe the above command into another command that will surround each username with an SQL insert statement: insert into thetable (username) values... (3 Replies)
Discussion started by: tenakha
3 Replies

9. Shell Programming and Scripting

Escaping apostrophe using shell script

Hi, I am using the KSH shell. I am facing a problem of escaping apostrophe('), that is occuring in a variable. I used the following command, but in vain item=`echo $item|sed 's/'/\'/g'` this code replaces the occurance of ' in an xml file to apostrophe(') symbol. The output of... (2 Replies)
Discussion started by: mradul_kaushik
2 Replies

10. Shell Programming and Scripting

How to strip apostrophe from a file

I am trying to remove or replace various extraneous characters from a file so that subsequent processes work correctly. The characters that is giving me trouble is the apostrophe '. The command I 'm trying is sed 's/\'//g' ${IN_WRK_DIR}/file1 > ${IN_WRK_DIR}/file2 in a Korn script on HP... (8 Replies)
Discussion started by: aquimby
8 Replies

Featured Tech Videos