まず第一に、LiKao"
が言ったように余分な sは必要ありません。次に、sed が何を何に置き換えるかを理解する方法を知る必要があります。
s/this/that/flags
これは、追加のフラグで置換することthis
を意味しますthat
(たとえば、すべてのg
場所を意味します)。実際、は特殊文字ではありません。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
(もちろん、 # と内部を使用した場合、this
またはthat
があった#
場合はエスケープする必要があります#
)
特殊文字を含むsedの詳細については、こちらを参照してください。