On Sat, Apr 17, 2010 at 12:02:40PM -0400, Daniel D Jones wrote: > On Saturday 17 April 2010 00:09:28 Michael Elkins wrote: > > On Fri, Apr 16, 2010 at 08:15:38PM -0400, Daniel D Jones wrote: > > >What I'm trying to do is pretty simple. Getting it to work is turning out > > > not to be. What I want to do is call a bash script with a couple of > > > arguments, and, within the script, call sed to use those args to replace > > > two placeholders in a file: > > > > > >bashscript SUB1 SUB2 > > > > > >This line inside bashscript doesn't work: > > > > > >sed -e 's/PLACEHOLDER1/$1/' -e 's/PLACEHOLDER2/$2/' < input > output > > > > If you switch the single quotes to double quotes it will work as you > > expect. Variables inside of double quotes are expanded. Single quotes are > > for literal strings, as you've discovered. > > That was the first thing I tried and sed gave me an error: > > sed: -e expression #1, char 18: unknown option to `s' > > I just went back and tried it again and it worked, so I have no idea what I > did the first time that made it not work.
As others have mentioned, rgw command-line parameter $1 probably has a '/' in it. A simple workaround is to use a different character as the separator. That is: *if* you can assume that variable will not contain the character '|', you can use: sed -e "s|PLACEHOLDER1|$1|' -e "s|PLACEHOLDER2|$2|" < input > output You can use some other characters there as well. See sed(1). -- Tzafrir Cohen | tzaf...@jabber.org | VIM is http://tzafrir.org.il | | a Mutt's tzaf...@cohens.org.il | | best tzaf...@debian.org | | friend -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20100420041023.go16...@pear.tzafrir.org.il