如何通过搜索和替换验证大量文件?

2024-02-08

我当前正在验证客户端的 HTML 源,但对于没有 Omittag 的图像和输入文件,我收到了很多验证错误。我会手动执行此操作,但该客户端实际上有数千个文件,其中很多情况下不是 .

该客户端已验证一些 img 标签(无论出于何种原因)。

只是想知道是否有一个 unix 命令我可以运行来检查是否没有 Omittag 来添加它。

我已经完成了简单的搜索并替换为以下命令:

find . \! -path '*.svn*' -type f -exec sed -i -n '1h;1!H;${;g;s/<b>/<strong>/g;p}' {} \; 

但从来没有这么大的东西。任何帮助,将不胜感激。


尝试这个。它会遍历你的文件,制作一个.orig每个文件的备份(perl 的-i运算符),并替换<img> and <input>标签有<img /> and <input >.

find . \! -path '*.svn*' -type f -exec perl -pi.orig -e 's{ ( <(?:img|input)\b ([^>]*?) ) \ ?/?> }{$1\ />}sgxi' {} \;

给定输入:

<img>  <img/>  <img src="..">  <img src="" >
<input>  <input/>  <input id="..">  <input id="" >

它将文件更改为:

<img />  <img />  <img src=".." />  <img src="" />
<input />  <input />  <input id=".." />  <input id="" />

这是正则表达式正在做的事情:

s{(<(?:img|input)\b ([^>]*?)) # capture "<img" or "<input" followed by non-">" chars
  \ ?/?>}                     # optional space, optional slash, followed by ">"
{$1\ />}sgxi                  # replace with: captured text, plus " />"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过搜索和替换验证大量文件? 的相关文章