Visit Our UNIX and Linux User Community


Having problems with sed: can't replace $1


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Having problems with sed: can't replace $1
# 1  
Old 09-10-2007
Having problems with sed: can't replace $1

At the moment, I'm trying to do the following:

1. Have sed read the first line of a file

Example (file1.x):

Code:
5

2. Replace that first line with a new first line, which would read

Code:
5=newvariable

3. Have that information placed into file2.y

Unfortunately, I'm having a problem. Sed keeps giving me some kind of command error.

Code:
$ sed 's/'"$1"'/'"$1"'=newvariable/g' file1.x > file2.y
sed: -e expression #1, char 0: no previous regular expression

Why is this happening?

Last edited by Agent-X; 09-10-2007 at 12:15 AM..
# 2  
Old 09-10-2007
please try this out,

sed 's/'$var1'/'$var1'='$var2'/g' file1.x > file2.y
# 3  
Old 09-10-2007
Quote:
Originally Posted by manas_ranjan
please try this out,

sed 's/'$var1'/'$var1'='$var2'/g' file1.x > file2.y
Those single quotes would prevent variable expansion. Drop them and use the double quotes.

Code:
sed "s/$var1/$var1=$var2/g" file1.x > file2.y

# 4  
Old 09-10-2007
hey vino , i am able to do it........by

sed 's/'$var1'/'$var1'='$var2'/g' file1.x > file2.y

again yours is also right....

Hey Agent,
please try both of options....which suits you....
# 5  
Old 09-10-2007
Hey Agent,

use
sed 's/$var1/$var1=$var2/g' file1.x > file2.y

Regards
Nidhi
# 6  
Old 09-10-2007
Quote:
Originally Posted by Agent-X
At the moment, I'm trying to do the following:

1. Have sed read the first line of a file

Example (file1.x):

Code:
5

2. Replace that first line with a new first line, which would read

Code:
5=newvariable

3. Have that information placed into file2.y

Unfortunately, I'm having a problem. Sed keeps giving me some kind of command error.

Code:
$ sed 's/'"$1"'/'"$1"'=newvariable/g' file1.x > file2.y
sed: -e expression #1, char 0: no previous regular expression

Why is this happening?
Agent,i think we can't use the special variable $1 to access the first field of the line read from file as in awk.These variables can only be used after a regular expression match was done in sed.See the below code

Code:
sed -ne '/5/'{s/$1/New/p} file.x

The above code will match for '5' in the readed line and then that matched expression was replaced using $1 variable in the curly braces with 'New' as an action.

In your code,since there wasn't a regex usage the $1 variable is undefined and thereby shows error.

With Regards
Dileep Pattayath

Previous Thread | Next Thread
Test Your Knowledge in Computers #521
Difficulty: Medium
0b110010000001 = 2^11 + 2^10 + 2^7 + 2^0
True or False?

10 More Discussions You Might Find Interesting

1. HP-UX

sed help with underscore problems

Hello, I have spent a couple of hours trying to answer this myself, so forgive me if the answer is simple but I have tried. I have a text file generated from svn log output which contains a list of files. Two regexps im using are * and * They both work but some lines has a mixture... (7 Replies)
Discussion started by: YogaBija
7 Replies

2. Homework & Coursework Questions

Execution Problems with sed

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: Okay so I am taking bash scripting this semester and we are now working on the stream editor sed. For our book we... (4 Replies)
Discussion started by: aggie6970
4 Replies

3. UNIX for Advanced & Expert Users

problems with sed

$ echo "a,0,0,0,b,0" | sed 's/,0,/,1,/g' gives output as $ a,1,0,1,b,0 rather than as a,1,1,1,b,0 how can i solve this problem Thanks a lot in advance.... Use code tags. (4 Replies)
Discussion started by: manishma71
4 Replies

4. Shell Programming and Scripting

How to use sed to replace the a string in the same file using sed?

How do i replace a string using sed into the same file without creating a intermediate file? (7 Replies)
Discussion started by: gomes1333
7 Replies

5. Shell Programming and Scripting

2 problems... sed and sort

Hi everyone! I have a file like that: And I would it like that: I don't know how to keep the first field and sort the second one. I have a second question with sed... to put the variable $VAR at the beginning of the file... But I have an output like this: snork... (3 Replies)
Discussion started by: Castelior
3 Replies

6. Shell Programming and Scripting

problems using sed

i have a file acc.sh which has about 10 lines and then i have defined $var which has a line number in it (say 5). i want to extarct from line 5 to the end of the file and put the output into another file. I have used sed -n $var,'$p' acc.sh | tee abc.sh but at times it does'nt work and gives an... (6 Replies)
Discussion started by: lassimanji
6 Replies

7. Solaris

Sed problems on Solaris 10

Hi, The config file: # Port(s) for accepting client connections RTSPPort=554 bash-3.00# awk -F"=" -v gr="888" '/RTSPPort/{$2=gr;}1' OFS="=" server.ini awk: syntax error near line 1 awk: bailing out near line 1 Can you help me on why this doesn't work. The next one neighter. Dosn't... (0 Replies)
Discussion started by: potro
0 Replies

8. Shell Programming and Scripting

Problems with SED

I have a group of xml files and I need to insert 3 parameters just after this line in each file: ---------------Pattern to be searched for------------------------- <!--The following configuration is a test configuration--> ---------------Parameters to be added---------------------------... (11 Replies)
Discussion started by: collern2
11 Replies

9. UNIX for Dummies Questions & Answers

Problems with sed

Hi, I'm trying to use the sed command but I'm not sure how to use it properly. I've read the man pages for the sed command but I'm still unsure on how to use it. Basically I have a file with the words male and female written multiple times. I want to swap the word male for female and... (4 Replies)
Discussion started by: tugade
4 Replies

10. Shell Programming and Scripting

sed substitution problems

Hi falks, I need to substitute in my ksh program, parameter (full path of directory) ,which is sent from outside program, with another parameter (another full path of directory) ,which is known and validated inside my program. I tried to use "sed" ,but i failed. For example: ... (2 Replies)
Discussion started by: nir_s
2 Replies

Featured Tech Videos