How can I use a variable in sed?


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How can I use a variable in sed?
# 1  
How can I use a variable in sed?

Hi
I'm trying to change a part of a line with sed. Usually I will run
sed 's/mytext/mynewtext/'

Now I have a variable: var=mynewtext

sed 's/mytext/$var/' does not work. I have also tried to protect the $ with different characters but it still does'nt work.

I will be very happy if someone has a solution to this.
# 2  
For starters, you can switch to double quotes:

sed "s/mytext/$var/"

Sometimes that does not work. It would depend on the exact value of mytext. So another solution is to turn the single quoted string into two single quoted strings:

sed 's/mytext/'$var'/'

In this case, the 2nd single quoted string is '/'. Just using a backslash would work to that and it saves a character:

sed 's/mytext/'$var\/

There is actually no reason to quote a slash so this should also work with most shells:

sed 's/mytext/'$var/

And there may be no reason to quote anything at all, but again, the actual vakue of mytext determines this. So this may work:

sed s/mytext/$var/

Opps...you only wanted a solution, so I'll quit now....Smilie
These 3 Users Gave Thanks to Perderabo For This Post:
# 3  
Computer

Thanks for excelent answers !! It works....
Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #479
Difficulty: Medium
A address usually refers to a single byte of memory (called bitwise-addressing).
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Variable in sed

First post on this excellent forum. I have problem using an variable in sed. I've been quoting until my eyes bleeds now:o I want to match IPV6 addresses and join it with the line that follows. This works when i use it without an variable. cat test.txt | sed -e '/^2001/{N;s/\n//;}' But when... (9 Replies)
Discussion started by: OXYD
9 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 with variable

Hi Friends in sed whether we can use variable.like the following expression. sed -i 's/ABC/$var/g' filename I am using Kernel 2.6.18-194.11.1.el5 RedHat linux. I have tried sed -i 's/ABC/"$var"/g' filename, still not working.:( Please help. Thanks in advance Joy (2 Replies)
Discussion started by: itsjoy2u
2 Replies

4. Red Hat

sed with variable

Hi Friends in sed whether we can use variable.like the following expression. sed -i 's/ABC/$var/g' filename I am using Kernel 2.6.18-194.11.1.el5 RedHat linux. I have tried sed -i 's/ABC/"$var"/g' filename, still not working.:( Please help. Thanks in advance Joy Double post,... (0 Replies)
Discussion started by: itsjoy2u
0 Replies

5. 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

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

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

8. Shell Programming and Scripting

want to use variable in sed

hello i have following sed command works fine. sed -n 's/.*-L\(*\)myproject.*/\1/p' makefile > m here search words are -L and myproject now i want to replace these words by variables like var1="-L" var2="myproject" so the command would be like this sed -n... (3 Replies)
Discussion started by: shailesh_arya
3 Replies

9. Shell Programming and Scripting

sed with a variable

Hi, My shell script searches a VALUE in a file, copies it to a variable and updates a line in another file with this new VALUE (replacing the old) The value has a pattern- VALUE=`$$MyDate=11-11-2008 09.09.56.123456` (yes the $ - . = and space are all part of the string) I am having... (6 Replies)
Discussion started by: ngagemaniac
6 Replies

10. UNIX for Dummies Questions & Answers

Doing a sed on a variable help !

Hi, So what I'm trying to do is I have these variables and if they have a dot in them , I want everyting before and including the dot removed. Any ideas ? Something like this I would want : $var = $var | sed 's/.*\.//' but that does't work. I want to save that removal $var... (2 Replies)
Discussion started by: seaten
2 Replies

Featured Tech Videos