【发布时间】:2013-07-16 08:16:38
【问题描述】:
我仍然是 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 不合适,还有什么我可以使用的吗?
【问题讨论】: