首先,你不需要像李考"
所说的那样多余的 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 的信息,包括它的特殊字符。