Visit Our UNIX and Linux User Community


Help with variable substition in sed


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Help with variable substition in sed
# 1  
Old 06-10-2011
Help with variable substition in sed

Hi,

I'm a bit stuck trying to get my sed syntax quite right for what I'm trying to do.

I have a list of directories in a file and am trying to remove some of them using sed. I can do it if I specify the directory I want to remove in the sed command and escape the "/"s like so:

say I want to remove /home/fred/scripts from dirs.txt. This works:

Code:
 
mv dirs.txt dirs.old; sed -e '/\/home\/fred\/scripts/d' dirs.old > dirs.txt

However, I can't seem to do this same thing using a variable to represent the directory I want to remove. I've tried several different combinations of single and double quotes in my sed script section, but just can't quite seem to get the syntax right.

Anyone have any suggestions to try?

Thanks!
# 2  
Old 06-10-2011
Probably because of the /'s mucking things up. It sees an unescaped / and thinks the expression ought to end there, finds more junk after it and throws a syntax error. Use another char as sed's separator:
Code:
sed -e "#/home/fred/scripts#d"

You should be able to substitute variables directly into that.

I'd just use grep, though:
Code:
grep -v "/home/scripts/fred" < infile > outfile

This User Gave Thanks to Corona688 For This Post:
# 3  
Old 06-10-2011
Thanks Corona688! I had forgotten that I could use a different delimiter in sed. That looks much better than all my escape characters.

Your suggestion to use grep instead is also a good one. Thanks again!
 

Previous Thread | Next Thread
Test Your Knowledge in Computers #702
Difficulty: Medium
The MySQL LIKE operator is a logical operator that tests whether a string contains a specified pattern.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed substition within XML tag

Hi all, I basically want to remove certain characters from within a certain XML tag: From: <mytagone>hello 1-2-3 world</mytagone> <mytagtwo>hello 1-2-3 world</mytagtwo> To: <mytagone>hello 1 2 3 world</mytagone> <mytagtwo>hello 1-2-3 world</mytagtwo> Is this possible using sed... (6 Replies)
Discussion started by: Jedimark
6 Replies

2. Red Hat

How to pass value of pwd as variable in SED to replace variable in a script file

Hi all, Hereby wish to have your advise for below: Main concept is I intend to get current directory of my script file. This script file will be copied to /etc/init.d. A string in this copy will be replaced with current directory value. Below is original script file: ... (6 Replies)
Discussion started by: cielle
6 Replies

3. Shell Programming and Scripting

sed and variable

Hello i would like to interpret a variable in this command cnt=3 sed -n '${cnt}p' file.txt sed: 0602-403 `${cnt}`p is not a recognized function. can you help me please ? thanks (2 Replies)
Discussion started by: ade05fr
2 Replies

4. Shell Programming and Scripting

Expand an environment variable in sed, when the variable contains a slash

I'm trying to make a sed substitution where the substitution pattern is an environment variable to be expanded, but the variable contains a "slash". sed -e 's/<HOME_DIRECTORY>/'$HOME'/'This gives me the following error: sed: -e expression #1, char 21: unknown option to `s'Obviously this is... (2 Replies)
Discussion started by: Ilja
2 Replies

5. UNIX for Advanced & Expert Users

Regular expression / regex substition on Unicode text

I have a large file encoded in Unicode that I need to convert to CSV. In general, I know how to do this by regular expression substitutions using sed or Perl, but one problem I am having is that I need to put a quotation mark at the end of each line to protect the last field. The usual regex... (1 Reply)
Discussion started by: thomas.hedden
1 Replies

6. Shell Programming and Scripting

Insert a line including Variable & Carriage Return / sed command as Variable

I want to instert Category:XXXXX into the 2. line something like this should work, but I have somewhere the wrong sytanx. something with the linebreak goes wrong: sed "2i\\${n}Category:$cat\n" Sample: Titel Blahh Blahh abllk sdhsd sjdhf Blahh Blah Blahh Blahh Should look like... (2 Replies)
Discussion started by: lowmaster
2 Replies

7. Shell Programming and Scripting

Command substition with KSH

$var=`command <arg> <arg>` I thought there was another method $var=$(command <arg> <arg>) I thought I read saw the second example. It doesnt work (2 Replies)
Discussion started by: popeye
2 Replies

8. UNIX for Dummies Questions & Answers

Perl Substition with multiple conditions

I have a text file that contains lines similar to the following: ----------------------------------------------------------- fall for setup CSHRC0 'gnd'; CSHR0 'gnd'; rise for setup rise for hold CSHRC0 'gnd'; CSHR0 'gnd'; fall for hold ... (4 Replies)
Discussion started by: EDALBNUG
4 Replies

9. Shell Programming and Scripting

Sed variable substitution when variable constructed of a directory path

Hello, i have another sed question.. I'm trying to do variable substition with sed and i'm running into a problem. my var1 is a string constructed like this: filename1 filerev1 filepath1 my var2 is another string constructed like this: filename2 filerev2 filepath2 when i do... (2 Replies)
Discussion started by: alrinno
2 Replies

10. Shell Programming and Scripting

how does this substition work?

Hi all, Would like to know how these substitution works?? FINISHED="Done" x=126 COLS=$((${x} -${#FINISHED} - 5)) here does the #FINISHED give the ascii value of "done" ,or how does it work? Thanks (1 Reply)
Discussion started by: wrapster
1 Replies

Featured Tech Videos