Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.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 从html中删除某些javascript_Linux_Bash_Sed - Fatal编程技术网

Linux 从html中删除某些javascript

Linux 从html中删除某些javascript,linux,bash,sed,Linux,Bash,Sed,我想从html文件中删除以下javascript <script src="text/javascript> alert('hello'); })(); </script> 及 通过阅读,我可以使用: sed '/<script type="text\/javascript"/,/<\/script>/d' 但它将删除所有javascript 我的具体需求是以}结尾的javascript;新行和以}catcherr{}结尾的其他行 我想使用sed

我想从html文件中删除以下javascript

<script src="text/javascript>
alert('hello');

})();

</script>

通过阅读,我可以使用:

sed '/<script type="text\/javascript"/,/<\/script>/d'
但它将删除所有javascript

我的具体需求是以}结尾的javascript;新行和以}catcherr{}结尾的其他行

我想使用sed,如果不可能,那么可以使用任何类似于sed的程序,这样我就可以通过脚本运行它

感谢您抽出时间。

使用awk或您选择的编程语言

awk -vRS="</script>" '/<script/ { if(/}\)\(\);|catch\(err\)/) { gsub(/script.*/,"");}  }1' file
它将删除所有以}结尾的javascript块;新行或}catcherr{}

一点解释:

/text/javascript/:块从包含text/javascript的标记开始 :a:创建标签 N:读取模式空间的下一行 //!ba:如果不是关闭标签,则转到标签a s/pattern/:如果满足条件,则删除模式空间
它已经加载了删除它的意义是什么?你是否故意省略了src属性的结尾双引号,或者这是问题中的输入错误?这只是我创建的一个示例问题。
awk -vRS="</script>" '/<script/ { if(/}\)\(\);|catch\(err\)/) { gsub(/script.*/,"");}  }1' file
sed '/text\\/javascript/{:a;N;/<\/script>/!ba;s/.*})();\n\n<\/script>|.*} catch(err) {}<\/script>//}'