sed从html文件中删除标签
我需要使用sed命令使用bash脚本从html中删除所有标签。我尝试了这个
sed -r 's/[\<][\/]?[a-zA-Z0-9\=\"\-\#\.\& ]+[\/]?[\>]//g' $1和这
sed -r 's/[\<][\/]?[.]*[\/]?[\\]?[\>]//g' $1但我仍然想念什么,有什么建议吗?
回答:
您可以使用很多的一个HTML文本转换器,使用Perl的正则表达式如果可能的话<.+?>,或者如果它必须是sed使用<[^>]*>
sed -e 's/<[^>]*>//g' file.html如果没有错误的余地,请改用HTML解析器。例如,当元素分布在两行上时
<div>Lorem ipsum</div>
此正则表达式将不起作用。
这正则表达式由三个部分组成<,[^>]*,>
- 寻找开放
< 后面跟着零个或多个字符
*(不是结尾)>[...]是字符类,当它开始^查找不在 类中的字符时
最后寻找关闭
>
更简单的正则表达式<.*>将不起作用,因为它会搜索可能的最长匹配项,即>输入行中的最后一个结束符。例如,当输入行中有多个标签时
<name>Olaf</name> answers questions.以上是 sed从html文件中删除标签 的全部内容, 来源链接: utcz.com/qa/403885.html

