gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 00:29:14 24 4
gpt4 key购买 nike

我仍然是 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

关于regex - sed - 在模式中包含换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17671392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com