Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在sed中搜索并替换html标记(用斜杠)_Linux_Sed - Fatal编程技术网

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