试试这个。它将遍历您的文件,.orig
对每个文件(perl 的运算符)进行备份,并用and-i
替换<img>
and<input>
标记。<img />
<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 " />"