Linux 在sed中搜索并替换html标记(用斜杠)
我有一个文件包含此Linux 在sed中搜索并替换html标记(用斜杠),linux,sed,Linux,Sed,我有一个文件包含此 我想用 我试过了 sed 's/"<!-- CordovaVersion -->"/"<script src="cordova-1.7.0.js" type="text/javascript"></script>"/g' junk4 > junk4_modified sed's/“”/“”/g'junk4>junk4\u已修改 但它似乎不起作用。有什么帮助吗?请使用像#这样的其他字符作为分隔符,而不是/ sed's###g'jun
我想用
我试过了
sed 's/"<!-- CordovaVersion -->"/"<script src="cordova-1.7.0.js" type="text/javascript"></script>"/g' junk4 > junk4_modified
sed's/“”/“”/g'junk4>junk4\u已修改
但它似乎不起作用。有什么帮助吗?请使用像#这样的其他字符作为分隔符,而不是/
sed's###g'junk4>junk4\u已修改
sed的///g'junk4>junk4\u使用此行修改的
sed将搜索“
,并尝试将其替换为”
。但您的原始文档不包含”
。只需从sed命令中删除它们。首先,您不需要像前面所说的那样使用额外的“
。其次,您需要知道sed如何理解用什么替换什么:
s/this/that/flags
这意味着将这个
替换为那个
和其他标志(例如g
表示无处不在)。事实上/
不是特殊字符,您可以使用任何其他字符,例如#
,如下所述:
但是问题出在哪里呢?假设您想用th/at
替换this
。然后sed看到了这一点:
s/this/th/at/flags
你是想用th
替换this
?而不是at/flags
是什么意思?你是想用at
替换this/th
?还是想用th/at
替换this
?无从得知
这就是为什么您应该用\
转义特殊字符。因为我们使用/
作为分隔符,所以当它不是分隔符时,我们必须转义它:
sed 's/<!-- CordovaVersion -->/<script src="cordova-1.7.0.js" type="text\/javascript"><\/script>/g' junk4 > junk4_modified
sed's///g'junk4>junk4\u已修改
(当然,如果我们使用#和这个
或那个
里面有一个
你应该转义
)
你可以阅读更多关于sed的信息,包括它的特殊字符
s/this/th/at/flags
sed 's/<!-- CordovaVersion -->/<script src="cordova-1.7.0.js" type="text\/javascript"><\/script>/g' junk4 > junk4_modified