我想在下面的上下的方式來使用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也會評估這些元字符。那是你要的嗎? –