我想从html文件中删除以下javascript。
<script src="text/javascript>
alert('hello');
})();
</script>
和
<script src="text/javascript>
alert('hello');
} catch(err) {}</script>
通过阅读http://www.cyberciti.biz/faq/sed-howto-remove-lines-paragraphs/我可以使用:
sed '/<script type="text\/javascript"/,/<\/script>/d'
但它会删除所有的javascript。
我的具体要求是javascript,以})(); (new line)</script>
结尾,其他以} catch(err) {}</script>
结尾
我想使用sed,如果不可能那么任何类似于sed的程序,以便我可以通过脚本运行它。
感谢您抽出宝贵时间。
答案 0 :(得分:0)
使用awk
或您选择的编程语言
awk -vRS="</script>" '/<script/ { if(/}\)\(\);|catch\(err\)/) { gsub(/script.*/,"");} }1' file
答案 1 :(得分:0)
sed '/text\\/javascript/{:a;N;/<\/script>/!ba;s/.*})();\n\n<\/script>|.*} catch(err) {}<\/script>//}'
它将删除所有以})(); (new line)</script>
或} catch(err) {}</script>
结尾的javascript块。
一点解释:
text/javascript
a