首先,你不需要像李考"所说的那样多余的 s 。其次,您需要知道 sed 如何理解什么被替换为什么:
s/this/that/flags
这意味着用额外的标志替换this(that例如g意味着无处不在)。实际上 the/不是一个特殊字符,你可以使用任何其他字符,例如#scai说的:
s#this#that#flags
但问题是什么?想象一下你想this用th/at. 然后 sed 看到这个:
s/this/th/at/flags
并得到正确的混淆。你想用 替换this吗th?比什么at/flags意思?你想用 替换this/th吗at?还是this与th/at? 没有办法说。
这就是为什么你应该用 . 转义特殊字符的原因\。由于我们用作/分隔符,所以当它不是分隔符时我们必须将其转义:
sed 's/<!-- CordovaVersion -->/<script src="cordova-1.7.0.js" type="text\/javascript"><\/script>/g' junk4 > junk4_modified
(当然,如果我们使用 # and insidethis或者that有一个#你应该已经逃脱了#)
你可以在这里阅读更多关于 sed 的信息,包括它的特殊字符。