Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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
sed和lazy搜索id为的特定html标记_Html_Tags_Sed_Strip - Fatal编程技术网

sed和lazy搜索id为的特定html标记

sed和lazy搜索id为的特定html标记,html,tags,sed,strip,Html,Tags,Sed,Strip,如何使用sed删除所述html标记 例如: <div id="header"><span id="navbar">... Content ...</span></div> 我尝试的是: sed 's!<div id=\"header\">.*\?</div>!!g' 请记住,这应该根据sed不支持。*?贪婪匹配的这一点来工作。 您可以试试。这可能适合您: sed ' > /<div id="header

如何使用sed删除所述html标记

例如:

<div id="header"><span id="navbar">... Content ...</span></div>
我尝试的是:

sed 's!<div id=\"header\">.*\?</div>!!g'
请记住,这应该根据sed不支持。*?贪婪匹配的这一点来工作。
您可以试试。

这可能适合您:

sed '
>    /<div id="header"><span id="navbar">/{ # search for start tags
>    s//\n/                                 # replace start tags with newline
>    :a                                     # label a
>    /\n<\/span><\/div>/bb                  # search for end tags and if so goto label b
>    s/\n./\n/                              # end tags not found bump along a character
>    ta                                     # goto label a if last substitution ok
>    :b                                     # label b
>    s///                                   # delete end tags and newline
>    /^$/d                                  # check for empty line and if so delete
>    }' file

注意:这要求开始/结束标记位于同一行。

如果您的目标是从文件中删除html标记及其内容,可以尝试以下命令

注意:以下所有命令都是内联编辑。运行此命令后,您要更改的文件将立即更改。测试前,请备份您的文件

如果标签都在一行上,您可以尝试以下方法

sed -i 's/<div id=\"header\"><span id=\"navbar\".*<\/span><\/div>//g' /yourfile
如果标记位于多行上,如下面的示例所示,请尝试下面的命令

<div id="header"><span id="navbar">
    ... Content ...
</span></div>
注意:如果您使用的是OS X,则需要将sed-i更改为sed-i

,其中sed将是:

testers="<div id="header"><span id=\"navbar\">... Content ...</span> some stuf </div>"
echo $testers| sed -E 's/<[\w ="/]+>// g'
结果是

... Content ... some more stuf

干杯。

考虑到源代码,我能用Android NDK编译它们吗?正如网站所说,它不需要支持库。如果我有已编译的二进制文件,sed命令会按预期工作吗?
testers="<div id="header"><span id=\"navbar\">... Content ...</span> some stuf </div>"
echo $testers| ssed -R -e 's/<[\w ="/]+>// g'
... Content ... some more stuf