sed problem in ksh


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed problem in ksh
# 1  
Old 02-15-2010
sed problem in ksh

Hi,

I have the following issue while replacing text in a file usind sed

Code:
$ cat file
$ One,ABCD\XYZ,Server one

i want to replace ABCD\XYZ with another text SERVER. with ABCD\XYZ stored in a variable.

Code:
#!/bin/ksh
VAR=ABCD\XYZ
echo $VAR
cat file | sed 's/'"$VAR"'/SERVER/'

I am able to do it in csh shell, but sed in ksh not supporting this. Please help.
# 2  
Old 02-15-2010
Code:
$ sed 's/ABCD\\XYZ/SERVER/ filename

# 3  
Old 02-15-2010
Sorry, But i dont want to hard code ABCD/XYZ. it should be in a variable.

Code:
VAR=ABCD\XYZ
sed 's/$VAR/SERVER/'

when i use a variable its not replacing.. in ksh
# 4  
Old 02-15-2010
Try...
Code:
#!/bin/ksh
VAR="ABCD\XYZ"
sed "s/$VAR/SERVER/" file

# 5  
Old 02-15-2010
Escape the backslash:
Code:
#!/bin/ksh

VAR='ABCD\\XYZ'
sed "s/$VAR/SERVER/g"

# 6  
Old 02-15-2010
No, Its not working..

Code:
$:~% cat file
one,ABCD\XYZ,Server One

$:~% cat run
#!/usr/bin/ksh
VAR="ABCD\XYZ"
sed "s/$VAR/SERVER/" file

$:~% run
one,ABCD\XYZ,Server One
$:~%



---------- Post updated at 07:12 AM ---------- Previous update was at 07:05 AM ----------

Quote:
Originally Posted by Franklin52
Escape the backslash:
Code:
#!/bin/ksh
 
VAR='ABCD\\XYZ'
sed "s/$VAR/SERVER/g"


Franklin,

It is working, But the issue is ABCD\XYZ is laread coming from an environment variable ENVDB

Code:
echo $ENVDB
ABCD\XYZ

so to make it double back slash

Code:
$  echo $ENVDB
ABCD\XYZ
$ cat file
one,ABCD\XYZ,Server One
$ sed "s/$ENVDB/SERVER/" file
one,ABCD\XYZ,Server One
$ VAR=`echo "$ENVDB" | sed "s/\\/\\\\/"`
sed: command garbled: s/\/\/
$

I could not put extra \ in a variable using sed.
# 7  
Old 02-15-2010
Try what Franklin suggested above, that should work.


ooop's crossed
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help needed - ksh: sed: command garbled:

Hi all, What am I doing wrong here? $ cat test_sed.ksh #!/usr/bin/ksh var="sed -e \'6s/9/6/\' testfile.txt > testfile.txt.2" $var $ ./test_sed.ksh sed: command garbled: \'6s/9/6/\' Thank you! (4 Replies)
Discussion started by: ejianu
4 Replies

2. Shell Programming and Scripting

Using Sed to do a substitution inside ksh

I'm trying to do an ls from inside of a ksh script. I loop through the results one line at a time and attempt to do a substitution using sed to convert YYYYMMDD from the older files into the newer files. Basically sometimes the ETL load runs over midnight and half the files are off by one day... (3 Replies)
Discussion started by: Calbrenar
3 Replies

3. Shell Programming and Scripting

SED sub commands in KSH not working for me

I am using SED to edit a file (called file) the file contains the word "ERROR" and I want to use SED to: 1. Search for text "ERROR" If found, 2. Append new line with text "hoi" I tried: sed 's/ERROR/ a\hoi' file sed 's/ERROR/ a\ hoi' file I get all the time the error sed:... (7 Replies)
Discussion started by: Alex400
7 Replies

4. Shell Programming and Scripting

sed command on ksh

How to use sed command to delete / and \ in a text... Thanks! (5 Replies)
Discussion started by: nram_krishna@ya
5 Replies

5. Shell Programming and Scripting

KSH: substitution character, AWK or SED?

Hi Gurus, I am working with a korn shell script. I should replace in a very great file the character ";" with a space. Example: 2750;~ 2734;~ 2778;~ 2751;~ 2751;~ 2752;~ what the fastest method is? Sed? Awk? Speed is dead main point, Seen the dimensions of the files Thanks (6 Replies)
Discussion started by: GERMANICO
6 Replies

6. Shell Programming and Scripting

Ksh problem

I am having a problem with this command working, can anyond help? $ export Path=/user/bin user/local/bin /user/ucb/bin (2 Replies)
Discussion started by: vthokiefan
2 Replies

7. Shell Programming and Scripting

passing variables to sed in ksh

Hi, i need help passing variables to sed using ksh. My goal is to get particular data from log files. first i put a mark to the log files. echo "TEST_"`date + %m_%d_%Y_%T"` >markFile this will produce a 'markFile' which contain text like this TEST_06_01_2009_21:55:09 then i put the mark... (2 Replies)
Discussion started by: d.anggrianto
2 Replies

8. Shell Programming and Scripting

appending a file using sed in ksh

i am trying to append a 5 line SGML file(file1) with a 500,000 line SGML file (file2). file1 is a template, so i wish to preserve. i only want to add lines 5 to the end of file2. i have: cp file1 temp1 sed -n '5,$p' file2 >> temp1 when i check the tail of temp1, i consistantly find the... (3 Replies)
Discussion started by: smac
3 Replies

9. Shell Programming and Scripting

Please help problem in KSH

Hi All, I have got a problem. I have written a Shell script which cuts some information from the file a and puts it in file b. But i get this error when i execute the shell script. This is what i have written in the script. #! /usr/bin cd /test ls $2 > a cut -f 1 -d '.' a > b When i... (2 Replies)
Discussion started by: srikanthshastry
2 Replies

10. Shell Programming and Scripting

ksh problem

when declaring a variable e.g. export DAYS what checking / how can i check that the value assigned only contains numeric characters or integers ? (1 Reply)
Discussion started by: jinky
1 Replies
Login or Register to Ask a Question