Adobe Dreamweaver的Search&替换功能提供以将其范围限制为“仅在xxxx HTML标记内”。
我想在Mac OS X的命令行中执行此操作(因此将执行与其捆绑的任何操作)。
例如,如何使用命令行删除所有<h1>
内的字符“a”的所有实例?
答案 0 :(得分:1)
你可以使用unix的sed命令(也可以在mac上使用)。 e.g。
$ cat foo.xml
<h1>axyzabca</h1>
<a href="foo.com">abc</a>
<h1>aa</h1>
<h1>a</h1>
<h1></h1>
$ cat foo.xml | sed 's/<h1>a*\([^a]*\)a*\([^a]*\)a*<\/h1>/<h1>\1\2<\/h1>/g'
<h1>xyzbc</h1>
<a href="foo.com">abc</a>
<h1></h1>
<h1></h1>
<h1></h1>
(foo.xml是一个涵盖常见测试用例的示例输入)
答案 1 :(得分:0)
这不是一个单行,但是 -
perl -ni -e '
$/ = undef; $x = <>; $y = "";
while ($x =~ m#^(.*?<h1>)(.*?)(</h1>)(.*)$#si) {
$x = $4; $y .= $1; $c = $3;
($b = $2) =~ s/a/(something else)/g;
$y .= $b . $c;
} print $y . $x;
' filename.html