我想在下面的上下的方式来使用SED任意变量:的sed与可能包含斜线
VAR=`echo $STRING | sed s/$TOKEN/$REPLACEMENT/`
不幸的是,我已经临到其中$更换有可能会包含斜线的情况下。这将导致bash的抱怨,因为它(壳)可能会扩展为这样的事情:
#given $VAR=I like bananas, $TOKEN=bananas, and $REPLACEMENT=apples/oranges
VAR=`echo I like bananas | sed s/bananas/apples/oranges/`
所以,现在的sed被赋予了太多的/的无效参数。有没有什么好的方法来处理?
,就应该替换旧的和过时的背抽动带括号'$(...)'例如:'VAR = $(回声$ STRING | sed s/$ TOKEN/$ REPLACEMENT /)' – Jotne
可能重复的[sed命令:如何使用变量](http://stackoverflow.com/questions/19151954/sed-command-how-to-use-变量) – devnull
比这更糟糕。如果$ TOKEN包含RE元字符('.','*'等),那么sed也会评估这些元字符。那是你要的吗? –