![]() |
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.
|
|
google unix.com
|
|||||||
| Forums | Register | Forum Rules | Links | Albums | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here. |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| awk Shell Script error : "Syntax Error : `Split' unexpected | Herry | UNIX for Dummies Questions & Answers | 2 | 03-17-2008 11:16 AM |
| error during run: St9bad_alloc - Getting this error while using some conversion progr | sathu_pec | Shell Programming and Scripting | 1 | 01-21-2008 02:38 AM |
| I got error like...syntax error on line 1, teletype | koti_rama | UNIX for Advanced & Expert Users | 2 | 07-07-2007 07:35 PM |
| error reading sections error at install | doelman | SUN Solaris | 2 | 02-05-2007 12:21 PM |
| Error: Internal system error: Unable to initialize standard output file | firkus | UNIX for Dummies Questions & Answers | 2 | 10-25-2005 03:23 PM |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
||||
|
sed error
in a bash shell I have the following
S00="BLOCK-NAMES /ELM1 /SAUT0 /FIT00 FOR ELMT,SAMPLE,FIT" S01="BLOCK-NAMES /ELM1 /SAUT0 /FIT01 FOR ELMT,SAMPLE,FIT" sed "s/'$S00'/'$S00'/g" pb206.cnt > tmp sed commplains and says sed: -e expression #1, char 29: Unknown option to `s' Can anybody help? Thank you!!! |
|
||||
|
You are replacing a string with the same string, so it's quite possible that it's replacing it, but there is no way to tell.
What exactly would you expect the result to be like? |
|
||||
|
of course the strings are different:
here is the script S00="BLOCK-NAMES /ELM1 /SAUT0 /FIT00" S01="BLOCK-NAMES /ELM1 /SAUT0 /FIT01" S02="BLOCK-NAMES /ELM1 /SAUT0 /FIT02" S03="BLOCK-NAMES /ELM1 /SAUT0 /FIT03" sed 's/$S00/$S01/g' pb206.cnt > tmp1 sed 's/$S00/$S02/g' pb206.cnt > tmp2 sed 's/$S00/$S03/g' pb206.cnt > tmp3 but tmp1, tmp2 and tmp3 are the same as pb206.cnt (which contains S00) |
|
||||
|
Shivdatta: Actually you probably mean
Code:
sed 's/FIT00/FIT01/g' filename But I guess what's asked for is really Code:
sed "s%$S00%$S01%g" file Of course, if you meant the substitution to contain literal single quotes, put them back in. The "unknown option to s" error happens because the interpolated string contains slashes. Sed has no way to know which slashes were interpolated (this happens in the shell, before sed executes) so you need to use a different separator than the slash. (Fortunately in this case you know there are no percent signs in these variables. It's tougher when you can't know in advance whether or not a particular character could be included in a variable.) Last edited by era; 04-28-2008 at 08:50 AM.. Reason: Explain quoting and cause of error message |
| Sponsored Links | ||
|
|