regex – sed – 在模式中包含换行符

我仍然是 shell脚本的菜鸟,但我正在努力.下面是一个部分工作的shell脚本,它应该通过匹配标记删除其附带的内容来从* .htm文档中删除所有JS.例如. < script src =“”>,< script>< / script>和< script type =“text / javascript”>

find $1 -name "*.htm" > ./patterns
for p in $(cat ./patterns)
do
sed -e "s/<script.*[.>]//g" $p #> tmp.htm ; mv tmp.htm $p
done

这个问题是脚本是因为sed逐行读取文本输入,这个脚本将无法按预期使用新行.运行:

<script>
//Foo
</script>

删除一个脚本标记,但将省略我不想要的“foo”和结束标记.

有没有办法匹配我的正则表达式中的换行符?或者如果sed不合适,还有什么我可以使用的吗?

解决方法

假设你有< script>不同行上的标记,例如就像是:

foo
bar
<script type="text/javascript">
some JS
</script>
foo

以下应该有效:

sed '/<script/,/<\/script>/d' inputfile

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...