gpt4 book ai didi

regex - 如何使用 UNIX 从多个文件中删除所有 <script> 标记(以及其间的所有内容)?

转载 作者:行者123 更新时间:2023-12-01 12:46:10 27 4
gpt4 key购买 nike

我有一个包含多个文件的文件夹,我想删除所有 <script>标签以及其间的所有内容,例如:

这个:

<script type="text/javascript">function(foo);</script>

还有这个:

<script type="text/javascript" src="scripts.js"></script>

我认为在 PHP 中它会是这样的:

<?php $string = preg_replace('#(\n?<script[^>]*?>.*?</script[^>]*?>)|(\n?<script[^>]*?/>)#is', '', $string); ?>

但是当谈到 UNIX 时我却不知所措。

最佳答案

例如呆呆

$ cat file
blah
<script type="text/javascript">function(foo);</script>
<script type="text/javascript" src="scripts.js"></script>
blah
<script type="text/javascript"
src="script1.js">
</script>
end

$ awk 'BEGIN{RS="</script>"}/<script/{gsub("<script.*","")}{print}END{if(RS=="")print}' file
blah




blah


end

所以在 for 循环中运行它来遍历你的文件(例如 html)

for file in *.html
do
awk 'BEGIN{RS="</script>"}/<script/{gsub("<script.*","")}{print}END{if(RS=="")print}' $file >temp
mv temp $file
done

您也可以使用 Perl 来完成,

perl -i.bak -0777ne 's|<script.*?</script>||gms;print' *.html

关于regex - 如何使用 UNIX 从多个文件中删除所有 &lt;script&gt; 标记(以及其间的所有内容)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2345884/

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