我想对给定目录中的大约 150 个 HTML 文件进行一些更改。一些锚标签具有如下几行的 href:index.php?page=something
. 我希望所有这些都更改为something.html
. 简单的正则表达式,简单的脚本。不过,我似乎无法正确理解。有人可以权衡我做错了什么吗?
示例 html,输出前后:
<!-- Before -->
<ul>
<li><a href="#">Apple</a></li>
<li><a href="index.php?page=dandelion">Dandelion</a></li>
<li><a href="index.php?page=elephant">Elephant</a></li>
<li><a href="index.php?page=resonate">Resonate</a></li>
</ul>
<!-- After -->
<ul>
<li><a href="#">Apple</a></li>
<li><a href="dandelion.html">Dandelion</a></li>
<li><a href="elephant.html">Elephant</a></li>
<li><a href="resonate.html">Resonate</a></li>
</ul>
脚本文件:
#! /bin/bash
for f in *.html
do
sed s/\"index\.php?page=\([.]*\)\"/\1\.html/g < $f >! $f
done