Visit Our UNIX and Linux User Community


Garbled Sed w/variables


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Garbled Sed w/variables
# 1  
Old 01-03-2002
Garbled Sed w/variables

I'm trying to get a partial file path by passing the part I want removed to sed. Sed gets garbled when I try multiple directories (i.e. because of the extra slash).

For example:
FULLFILEPATH="usr/local/bin"
STRIPDIR="usr"
PARTFILEPATH=`echo $FULLFILEPATH | sed s/\${STRIPDIR}//`

Gives me /local/bin. That works fine. But if I try:

FULLFILEPATH="usr/local/bin"
STRIPDIR="usr/local"
PARTFILEPATH=`echo $FULLFILEPATH | sed s/\${STRIPDIR}//`

Sed gets garbled. Any other ways I can accomplish this with or without sed?
# 2  
Old 01-04-2002
Code:
FULLFILEPATH="usr/local/bin" 
STRIPDIR="usr\/local"
PARTFILEPATH=`echo $FULLFILEPATH | sed s/\${STRIPDIR}//`

shaik786
# 3  
Old 01-04-2002
To do this with sed I would switch delimiters. The backslash before the dollar sign in the sed command doesn't seem to be needed. On the other hand, I like superfluous double quotes around the sed argument. So my code would be:
Code:
FULLFILEPATH="usr/local/bin" 
STRIPDIR="usr/local"
PARTFILEPATH=`echo $FULLFILEPATH | sed "s=${STRIPDIR}=="`

But ksh can this with built-ins. This save launching a sed process:
Code:
PARTFILEPATH=${FULLFILEPATH#$STRIPTDIR}

Several other modern shells have borrowed this from ksh so it may work with your shell.
# 4  
Old 01-04-2002
That's exactly what I was looking for. With the sed example, I found it useful to set a variable to an unprintable character first:

CA=`echo '\001'`

and then use that for my delimiter:

PARTFILEPATH=`echo $FULLFILEPATH | sed "s${CA}${STRIPDIR}${CA}${CA}"`

I'm always a little weary of using printable characters for things like this, you never know where the one you choose might show up! I did like the ksh example even better though, I hadn't even thought of that approach.

Thanks for your help!

Previous Thread | Next Thread
Test Your Knowledge in Computers #230
Difficulty: Easy
The Advanced Research Projects Agency Network (ARPANET) was an early packet-switching network and the first network to implement the TCP/IP protocol suite.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Command garbled when using sed

Hi everyone, Can anyone help me in question below? I want to cron a job to add partition every month but get the error sed: command garbled: s/YYYYMM/ . > echo $YYYYMON_NEW 201304 > echo $YYYYMON_OLD 201208 > echo $YYYY_MM_NEW 2013-05 This is my base script: ALTER TABLE STS.ADMIN ADD... (1 Reply)
Discussion started by: fenocean
1 Replies

2. Shell Programming and Scripting

sed help - Command garbled

Hi, First post for a noob so please go easy with me :) I have a XML block that is originally like this: <SETNAME>somecrap/THIS</SETNAME> and I would like it be replaced with, in the original file: <SETNAME>THIS</SETNAME> I tried to use: sed... (4 Replies)
Discussion started by: zhuanyi
4 Replies

3. Shell Programming and Scripting

sed: command garbled error

Hi all, Suppose that I want to update the db.password entry in the below properties file, db.username=admin db.password=qhKkBno2U5GEq5k/dnmGPA== //I want this line to be replaced by: "db.password=abc/123/" db.host=server db.port=22 db.sid=database However when... (2 Replies)
Discussion started by: isaacniu
2 Replies

4. Shell Programming and Scripting

Sed command garbled question

for j in $(cat ${list_B}) do to_replace_2=$(grep $j ${useralias}_2) sed "s/^${j}/${to_replace_2}/p" ${entries} > ${entries}_2 mv ${entries}_2 ${entries} done Hi, I've the above sed command running in a script. Its basically looping through a file and replacing its beginning of line... (8 Replies)
Discussion started by: Jazmania
8 Replies

5. Shell Programming and Scripting

sed command garbled error

sed: command garbled: s/ri="*"/ri=" what i did is you can see below sed "s/ri=\"*\"/ri=\"$newri\"/" $2 > output how to solve this (2 Replies)
Discussion started by: pasricha.kunal
2 Replies

6. Shell Programming and Scripting

sed: command garbled

Hi, I have a file1 as : A=/home/user B=/home/user1 C=/home/user2 D=/home/aacsms E=/home/user1/temp F=/home/user1/area1 and my script as: a=`cat /home/aacsms7/file1 | grep -i e` b=`user2` sed 's/'$a'/"E=/home/'$b'/temp"/g' < file1 > file2 sed: command garbled:... (3 Replies)
Discussion started by: yesmani
3 Replies

7. Shell Programming and Scripting

sed: command garbled - when executed with $variables

I have got a file job_tree.lst , which contains 1 line as below $ cat job_tree.lst ABC_D_EQ_XXXXX_YYYY_PRD_UX 05/08/2009 05:47 05/08/2009 05:50 IN 13412850/0 I want to get a child job string 3 characters offset from the parent job string (i.e. ABC_D_EQ_XXXXX_YYYY_PRD_UX 05/08/2009... (4 Replies)
Discussion started by: Armaan_S
4 Replies

8. Shell Programming and Scripting

Sed: command garbled :s/

Hi, I really need some help, I am using a very basic script to proess a text file. This script has been used many times but all of a sudden all on it's own it's stopped working. The line in the script is: sed 's/ //g' $ORGFILE > $NEWFILE and the error is Sed: command garbled :s/ All... (3 Replies)
Discussion started by: heidi.lightfoot
3 Replies

9. Shell Programming and Scripting

sed: command garbled error.....

Dear friends, please give me the solution to the following query. If a file contains multiple tags of same name, then how to get the required string between the tags, in which the string begins with "W/X" i.e., file1.txt contains following text(please note that all the following tags are in... (1 Reply)
Discussion started by: swamymns
1 Replies

10. Shell Programming and Scripting

sed: command garbled

Im getting this error message when trying to substitute filepaths in a sed search and replace string #!/usr/bin/ksh ORACLE_SID=PH3 ORACLE_ADMIN=/data01/app/oracle/admin/$ORACLE_SID DATAFILE_DIR=/asterisk/oradata/$ORACLE_SID sed -e s/DBNAME/$ORACLE_SID/g < initPH2.ora | sed -e... (1 Reply)
Discussion started by: blakmk
1 Replies

Featured Tech Videos